<script>
<!--
document.write(unescape("%3Cscript%20language%3D%22javascript%22%3E%0Adocument.write%28%20unescape%29%0A%3Chtml%3E%0A%3Chead%3E%0A%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text/css%22%20href%3D%22https%3A//dautocrazy.googlecode.com/svn/trunk/cssiframe.css%22%20media%3D%22all%22%20/%3E%0A%3Cscript%20type%3D%27text/javascript%27src%3D%27http%3A//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js%3Fver%3D1.7.1%27%3E%0A%3C/script%3E%20%0A%3Cscript%20type%3D%27text/javascript%27%3E%0A//%3C%21%5BCDATA%5B%0A%0A/*%0A%20*%20Inline%20Form%20Validation%20Engine%202.2.4%2C%20jQuery%20plugin%0A%20*%0A%20*%20Copyright%28c%29%202010%2C%20Cedric%20Dugas%0A%20*%20http%3A//www.position-absolute.com%0A%20*%0A%20*%202.0%20Rewrite%20by%20Olivier%20Refalo%0A%20*%20http%3A//www.crionics.com%0A%20*%0A%20*%20Form%20validation%20engine%20allowing%20custom%20regex%20rules%20to%20be%20added.%0A%20*%20Licensed%20under%20the%20MIT%20License%0A%20*/%0A%28function%28%24%29%20%7B%0A%0A%20%20%20%20var%20methods%20%3D%20%7B%0A%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Kind%20of%20the%20constructor%2C%20called%20before%20any%20action%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%20user%20options%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20init%3A%20function%28options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20form%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21form.data%28%27jqv%27%29%20%7C%7C%20form.data%28%27jqv%27%29%20%3D%3D%20null%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._saveOptions%28form%2C%20options%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20bind%20all%20formError%20elements%20to%20close%20on%20click%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28%22.formError%22%29.live%28%22click%22%2C%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.fadeOut%28150%2C%20function%28%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20remove%20prompt%20once%20invisible%0A%09%09%20%20%20%20%20%20%20%20%24%28this%29.parent%28%27.formErrorOuter%27%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Attachs%20jQuery.validationEngine%20to%20form.submit%20and%20field.blur%20events%0A%20%20%20%20%20%20%20%20%20*%20Takes%20an%20optional%20params%3A%20a%20list%20of%20options%0A%20%20%20%20%20%20%20%20%20*%20ie.%20jQuery%28%22%23formID1%22%29.validationEngine%28%27attach%27%2C%20%7BpromptPosition%20%3A%20%22centerRight%22%7D%29%3B%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20attach%3A%20function%28userOptions%29%20%7B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20form%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20options%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28userOptions%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options%20%3D%20methods._saveOptions%28form%2C%20userOptions%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%0A%09%09%09var%20validateAttribute%20%3D%20%28form.find%28%22%5Bdata-validation-engine*%3Dvalidate%5D%22%29%29%20%3F%20%22data-validation-engine%22%20%3A%20%22class%22%3B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21options.binded%29%20%7B%0A%09%09%09%09if%20%28options.bindMethod%20%3D%3D%20%22bind%22%29%7B%0A%09%09%09%09%0A%09%09%09%09%09//%20bind%20fields%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%22%29.not%28%22%5Btype%3Dcheckbox%5D%22%29.not%28%22%5Btype%3Dradio%5D%22%29.not%28%22.datepicker%22%29.bind%28options.validationEventTrigger%2C%20methods._onFieldEvent%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%5Btype%3Dcheckbox%5D%2C%5Bclass*%3Dvalidate%5D%5Btype%3Dradio%5D%22%29.bind%28%22click%22%2C%20methods._onFieldEvent%29%3B%0A%09%09%09%09%09form.find%28%22%5Bclass*%3Dvalidate%5D%5Bclass*%3Ddatepicker%5D%22%29.bind%28options.validationEventTrigger%2C%7B%22delay%22%3A%20300%7D%2C%20methods._onFieldEvent%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20bind%20form.submit%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.bind%28%22submit%22%2C%20methods._onSubmitEvent%29%3B%0A%09%09%09%09%7D%20else%20if%20%28options.bindMethod%20%3D%3D%20%22live%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20bind%20fields%20with%20LIVE%20%28for%20persistant%20state%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%22%29.not%28%22%5Btype%3Dcheckbox%5D%22%29.not%28%22.datepicker%22%29.live%28options.validationEventTrigger%2C%20methods._onFieldEvent%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%5Btype%3Dcheckbox%5D%22%29.live%28%22click%22%2C%20methods._onFieldEvent%29%3B%0A%09%09%09%09%09form.find%28%22%5Bclass*%3Dvalidate%5D%5Bclass*%3Ddatepicker%5D%22%29.live%28options.validationEventTrigger%2C%7B%22delay%22%3A%20300%7D%2C%20methods._onFieldEvent%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20bind%20form.submit%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.live%28%22submit%22%2C%20methods._onSubmitEvent%29%3B%0A%09%09%09%09%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09options.binded%20%3D%20true%3B%0A%09%0A%09%09%09%09if%20%28options.autoPositionUpdate%29%20%7B%0A%09%20%20%20%20%09%09%09%24%28window%29.bind%28%22resize%22%2C%20%7B%0A%09%09%09%09%09%09%22noAnimation%22%3A%20true%2C%20%0A%09%09%09%09%09%09%22formElem%22%3A%20form%0A%09%20%20%20%20%09%09%09%09%7D%2C%20methods.updatePromptsPosition%29%3B%0A%09%09%09%09%7D%0A%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Unregisters%20any%20bindings%20that%20may%20point%20to%20jQuery.validaitonEngine%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20detach%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20form%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.binded%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20unbind%20fields%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%22%29.not%28%22%5Btype%3Dcheckbox%5D%22%29.unbind%28options.validationEventTrigger%2C%20methods._onFieldEvent%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%5Btype%3Dcheckbox%5D%2C%5Bclass*%3Dvalidate%5D%5Btype%3Dradio%5D%22%29.unbind%28%22click%22%2C%20methods._onFieldEvent%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20unbind%20form.submit%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.unbind%28%22submit%22%2C%20methods.onAjaxFormComplete%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20unbind%20live%20fields%20%28kill%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%22%29.not%28%22%5Btype%3Dcheckbox%5D%22%29.die%28options.validationEventTrigger%2C%20methods._onFieldEvent%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%22%5Bclass*%3Dvalidate%5D%5Btype%3Dcheckbox%5D%22%29.die%28%22click%22%2C%20methods._onFieldEvent%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%09%09%09%09//%20unbind%20form.submit%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.die%28%22submit%22%2C%20methods.onAjaxFormComplete%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form.removeData%28%27jqv%27%29%3B%0A%09%09%0A%09%09%09%09if%20%28options.autoPositionUpdate%29%20%7B%0A%09%09%20%20%20%20%09%09%24%28window%29.unbind%28%22resize%22%2C%20methods.updatePromptsPosition%29%0A%09%09%09%09%7D%0A%20%20%20%20%20%20%20%20%20%20%20%09%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validates%20the%20form%20fields%2C%20shows%20prompts%20accordingly.%0A%20%20%20%20%20%20%20%20%20*%20Note%3A%20There%20is%20no%20ajax%20form%20validation%20with%20this%20method%2C%20only%20field%20ajax%20validation%20are%20evaluated%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@return%20true%20if%20the%20form%20validates%2C%20false%20if%20it%20fails%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20validate%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20methods._validateFields%28this%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validates%20one%20field%2C%20shows%20prompt%20accordingly.%0A%20%20%20%20%20%20%20%20%20*%20Note%3A%20There%20is%20no%20ajax%20form%20validation%20with%20this%20method%2C%20only%20field%20ajax%20validation%20are%20evaluated%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@return%20true%20if%20the%20form%20validates%2C%20false%20if%20it%20fails%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20validateField%3A%20function%28el%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20%24%28this%29.data%28%27jqv%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%20methods._validateField%28%24%28el%29%2C%20options%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.onSuccess%20%26%26%20options.InvalidFields.length%20%3D%3D%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.onSuccess%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28options.onFailure%20%26%26%20options.InvalidFields.length%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.onFailure%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20r%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validates%20the%20form%20fields%2C%20shows%20prompts%20accordingly.%0A%20%20%20%20%20%20%20%20%20*%20Note%3A%20this%20methods%20performs%20fields%20and%20form%20ajax%20validations%28if%20setup%29%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@return%20true%20if%20the%20form%20validates%2C%20false%20if%20it%20fails%2C%20undefined%20if%20ajax%20is%20used%20for%20form%20validation%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20validateform%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20methods._onSubmitEvent.call%28this%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%09%09/**%0A%20%20%20%20%20%20%20%20%20*%20%20Redraw%20prompts%20position%2C%20useful%20when%20you%20change%20the%20DOM%20state%20when%20validating%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20updatePromptsPosition%3A%20function%28event%29%20%7B%0A%09%20%20%20%20%0A%09%09%09if%20%28event%20%26%26%20this%20%3D%3D%20window%29%0A%09%09%09%09var%20form%20%3D%20event.data.formElem%2C%20noAnimation%20%3D%20event.data.noAnimation%3B%0A%09%09%20%20%20%20else%0A%09%09%09%09var%20form%20%3D%20%24%28this.closest%28%27form%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%09%09%09var%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%09%20%20%20%20%20%20%20%20//%20No%20option%2C%20take%20default%20one%0A%09%09%20%20%20%20form.find%28%27%5Bclass*%3Dvalidate%5D%27%29.not%28%27%3Ahidden%27%29.not%28%22%3Adisabled%22%29.each%28function%28%29%7B%0A%09%09%09%20%20%20%09var%20field%20%3D%20%24%28this%29%3B%0A%09%09%09%20%20%20%09var%20prompt%20%3D%20methods._getPrompt%28field%29%3B%0A%09%09%09%20%20%20%09var%20promptText%20%3D%20%24%28prompt%29.find%28%22.formErrorContent%22%29.html%28%29%3B%0A%0A%09%09%09%20%20%20%09if%28prompt%29%0A%09%09%09%09%09methods._updatePrompt%28field%2C%20%24%28prompt%29%2C%20promptText%2C%20undefined%2C%20false%2C%20options%2C%20noAnimation%29%3B%0A%09%09%20%20%20%20%7D%29%0A%09%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Displays%20a%20prompt%20on%20a%20element.%0A%20%20%20%20%20%20%20%20%20*%20Note%20that%20the%20element%20needs%20an%20id%21%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20promptText%20html%20text%20to%20display%20type%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20type%20the%20type%20of%20bubble%3A%20%27pass%27%20%28green%29%2C%20%27load%27%20%28black%29%20anything%20else%20%28red%29%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20possible%20values%20topLeft%2C%20topRight%2C%20bottomLeft%2C%20centerRight%2C%20bottomRight%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20showPrompt%3A%20function%28promptText%2C%20type%2C%20promptPosition%2C%20showArrow%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20form%20%3D%20this.closest%28%27form%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20No%20option%2C%20take%20default%20one%0A%09%09%09if%28%21options%29%20options%20%3D%20methods._saveOptions%28this%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28promptPosition%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.promptPosition%3DpromptPosition%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20showArrow%3D%3Dtrue%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20methods._showPrompt%28this%2C%20promptText%2C%20type%2C%20false%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Closes%20all%20error%20prompts%20on%20the%20page%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20hidePrompt%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%09var%20promptClass%20%3D%20%20%22.%22+%20methods._getClassName%28%24%28this%29.attr%28%22id%22%29%29%20+%20%22formError%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24%28promptClass%29.fadeTo%28%22fast%22%2C%200.3%2C%20function%28%29%20%7B%0A%09%09%24%28this%29.parent%28%27.formErrorOuter%27%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Closes%20form%20error%20prompts%2C%20CAN%20be%20invidual%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20hide%3A%20function%28%29%20%7B%0A%09%09%09var%20closingtag%3B%0A%20%20%20%20%20%20%20%20%09if%28%24%28this%29.is%28%22form%22%29%29%7B%0A%20%20%20%20%20%20%20%20%09%09closingtag%20%3D%20%22parentForm%22+methods._getClassName%28%24%28this%29.attr%28%22id%22%29%29%3B%0A%20%20%20%20%20%20%20%20%09%7Delse%7B%0A%20%20%20%20%20%20%20%20%09%09closingtag%20%3D%20methods._getClassName%28%24%28this%29.attr%28%22id%22%29%29%20+%22formError%22%3B%0A%20%20%20%20%20%20%20%20%09%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%24%28%27.%27+closingtag%29.fadeTo%28%22fast%22%2C%200.3%2C%20function%28%29%20%7B%0A%09%09%24%28this%29.parent%28%27.formErrorOuter%27%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Closes%20all%20error%20prompts%20on%20the%20page%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20hideAll%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24%28%27.formError%27%29.fadeTo%28%22fast%22%2C%200.3%2C%20function%28%29%20%7B%0A%09%09%24%28this%29.parent%28%27.formErrorOuter%27%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28this%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Typically%20called%20when%20user%20exists%20a%20field%20using%20tab%20or%20a%20mouse%20click%2C%20triggers%20a%20field%0A%20%20%20%20%20%20%20%20%20*%20validation%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_onFieldEvent%3A%20function%28event%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20field%20%3D%20%24%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20form%20%3D%20field.closest%28%27form%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20validate%20the%20current%20field%0A%09%09%09window.setTimeout%28function%28%29%20%7B%0A%09%09%09%20%20%20%20methods._validateField%28field%2C%20options%29%3B%0A%09%09%09%09if%20%28options.InvalidFields.length%20%3D%3D%200%20%26%26%20options.onSuccess%29%20%7B%0A%09%09%09%09%09options.onSuccess%28%29%3B%0A%09%09%09%09%7D%20else%20if%20%28options.InvalidFields.length%20%3E%200%20%26%26%20options.onFailure%29%20%7B%0A%09%09%09%09%09options.onFailure%28%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%2C%20%28event.data%29%20%3F%20event.data.delay%20%3A%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Called%20when%20the%20form%20is%20submited%2C%20shows%20prompts%20accordingly%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20form%0A%20%20%20%20%20%20%20%20%20*%20@return%20false%20if%20form%20submission%20needs%20to%20be%20cancelled%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_onSubmitEvent%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20form%20%3D%20%24%28this%29%3B%0A%20%09%09%09var%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%20%20%20%0A%09%09%09//%20validate%20each%20field%20%28-%20skip%20field%20ajax%20validation%2C%20no%20necessary%20since%20we%20will%20perform%20an%20ajax%20form%20validation%29%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20r%3Dmethods._validateFields%28form%2C%20true%29%3B%0A%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28r%20%26%26%20options.ajaxFormValidation%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._validateFormWithAjax%28form%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28options.onValidationComplete%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.onValidationComplete%28form%2C%20r%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20r%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Return%20true%20if%20the%20ajax%20field%20validations%20passed%20so%20far%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BObject%7D%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20true%2C%20is%20all%20ajax%20validation%20passed%20so%20far%20%28remember%20ajax%20is%20async%29%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_checkAjaxStatus%3A%20function%28options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20status%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24.each%28options.ajaxValidCache%2C%20function%28key%2C%20value%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21value%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20break%20the%20each%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20status%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validates%20form%20fields%2C%20shows%20prompts%20accordingly%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20form%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BskipAjaxFieldValidation%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20boolean%20-%20when%20set%20to%20true%2C%20ajax%20field%20validation%20is%20skipped%2C%20typically%20used%20when%20the%20submit%20button%20is%20clicked%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@return%20true%20if%20form%20is%20valid%2C%20false%20if%20not%2C%20undefined%20if%20ajax%20form%20validation%20is%20done%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_validateFields%3A%20function%28form%2C%20skipAjaxValidation%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20form.data%28%27jqv%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20this%20variable%20is%20set%20to%20true%20if%20an%20error%20is%20found%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20errorFound%20%3D%20false%3B%0A%09%09%09%0A%09%09%09//%20Trigger%20hook%2C%20start%20validation%0A%09%09%09form.trigger%28%22jqv.form.validating%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20first%2C%20evaluate%20status%20of%20non%20ajax%20fields%0A%09%09%09var%20first_err%3Dnull%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20form.find%28%27%5Bclass*%3Dvalidate%5D%27%29.not%28%27%3Ahidden%27%29.not%28%22%3Adisabled%22%29.each%28%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20field%20%3D%20%24%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorFound%20%7C%3D%20methods._validateField%28field%2C%20options%2C%20skipAjaxValidation%29%3B%0A%09%09%09%09field.focus%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.doNotShowAllErrosOnSubmit%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%09%09%20%20%20%20if%20%28errorFound%20%26%26%20first_err%3D%3Dnull%29%20first_err%3Dfield%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20second%2C%20check%20to%20see%20if%20all%20ajax%20calls%20completed%20ok%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20errorFound%20%7C%3D%20%21methods._checkAjaxStatus%28options%29%3B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20thrird%2C%20check%20status%20and%20scroll%20the%20container%20accordingly%0A%09%09%09form.trigger%28%22jqv.form.result%22%2C%20%5BerrorFound%5D%29%3B%0A%09%09%09%0A%09%09if%20%28errorFound%29%20%7B%09%09%09%09%0A%20%20%20%20%20%20%09%09if%20%28options.scroll%29%20%7B%09%0A%09%09%09%09var%20destination%3Dfirst_err.offset%28%29.top%3B%0A%09%09%09%09var%20fixleft%20%3D%20first_err.offset%28%29.left%3B%0A%0A%09%09%09%09//prompt%20positioning%20adjustment%20support.%20Usage%3A%20positionType%3AXshift%2CYshift%20%28for%20ex.%3A%20bottomLeft%3A+20%20or%20bottomLeft%3A-20%2C+10%29%0A%09%09%09%09var%20positionType%3Doptions.promptPosition%3B%0A%09%09%09%09if%20%28typeof%28positionType%29%3D%3D%27string%27%29%20%7B%0A%09%09%09%09%09if%20%28positionType.indexOf%28%22%3A%22%29%21%3D-1%29%20%7B%0A%09%09%09%09%09%09positionType%3DpositionType.substring%280%2CpositionType.indexOf%28%22%3A%22%29%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%0A%0A%09%09%09%09if%20%28positionType%21%3D%22bottomRight%22%26%26%20%0A%09%09%09%09%20%20%20%20positionType%21%3D%22bottomLeft%22%29%20%7B%0A%09%09%09%09%09var%20prompt_err%3D%20methods._getPrompt%28first_err%29%3B%0A%09%09%09%09%09destination%3Dprompt_err.offset%28%29.top%3B%0A%09%09%09%09%7D%0A%0A%09%09%09%09%09//%20get%20the%20position%20of%20the%20first%20error%2C%20there%20should%20be%20at%20least%20one%2C%20no%20need%20to%20check%20this%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//var%20destination%20%3D%20form.find%28%22.formError%3Anot%28%27.greenPopup%27%29%3Afirst%22%29.offset%28%29.top%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09if%20%28options.isOverflown%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09var%20overflowDIV%20%3D%20%24%28options.overflownDIV%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28%21overflowDIV.length%29%20return%20false%3B%0A%20%20%20%20%09%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20scrollContainerScroll%20%3D%20overflowDIV.scrollTop%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%09%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09var%20scrollContainerPos%20%3D%20-parseInt%28overflowDIV.offset%28%29.top%29%3B%0A%20%20%20%20%09%0A%20%20%20%20%20%20%20%20%20%20%09%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09destination%20+%3D%20scrollContainerScroll%20+%20scrollContainerPos%20-%205%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%20%20%20%20%20%20%20%20%20%20%20%20var%20scrollContainer%20%3D%20%24%28options.overflownDIV%20+%20%22%3Anot%28%3Aanimated%29%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%20%20%20%20%20%20%09scrollContainer.animate%28%7B%20scrollTop%3A%20destination%20%7D%2C%201100%29%3B%0A%20%20%20%20%09%09%09%09%09%7Delse%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28%22html%3Anot%28%3Aanimated%29%2Cbody%3Anot%28%3Aanimated%29%22%29.animate%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scrollTop%3A%20destination%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scrollLeft%3A%20fixleft%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%201100%2C%20function%28%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28options.focusFirstField%29%20first_err.focus%28%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%09%09%09%09%7D%20else%20if%28options.focusFirstField%29%0A%09%09%09%09%20%09first_err.focus%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20This%20method%20is%20called%20to%20perform%20an%20ajax%20form%20validation.%0A%20%20%20%20%20%20%20%20%20*%20During%20this%20process%20all%20the%20%28field%2C%20value%29%20pairs%20are%20sent%20to%20the%20server%20which%20returns%20a%20list%20of%20invalid%20fields%20or%20true%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20form%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%20options%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_validateFormWithAjax%3A%20function%28form%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20data%20%3D%20form.serialize%28%29%3B%0A%09%09%09var%20url%20%3D%20%28options.ajaxFormValidationURL%29%20%3F%20options.ajaxFormValidationURL%20%3A%20form.attr%28%22action%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24.ajax%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20%22GET%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20url%3A%20url%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cache%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dataType%3A%20%22json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data%3A%20data%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20form%3A%20form%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods%3A%20methods%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options%3A%20options%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20beforeSend%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.onBeforeAjaxFormValidation%28form%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20error%3A%20function%28data%2C%20transport%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._ajaxError%28data%2C%20transport%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20function%28json%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28json%20%21%3D%3D%20true%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20getting%20to%20this%20case%20doesn%27t%20necessary%20means%20that%20the%20form%20is%20invalid%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20the%20server%20may%20return%20green%20or%20closing%20prompt%20actions%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20this%20flag%20helps%20figuring%20it%20out%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20errorInForm%3Dfalse%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20json.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20%3D%20json%5Bi%5D%3B%0A%09%09%09%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20errorFieldId%20%3D%20value%5B0%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20errorField%20%3D%20%24%28%24%28%22%23%22%20+%20errorFieldId%29%5B0%5D%29%3B%0A%09%09%09%09%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20make%20sure%20we%20found%20the%20element%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28errorField.length%20%3D%3D%201%29%20%7B%0A%09%09%09%09%09%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20promptText%20or%20selector%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20msg%20%3D%20value%5B2%5D%3B%0A%09%09%09%09%09%09%09%09//%20if%20the%20field%20is%20valid%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28value%5B1%5D%20%3D%3D%20true%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28msg%20%3D%3D%20%22%22%20%20%7C%7C%20%21msg%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20if%20for%20some%20reason%2C%20status%3D%3Dtrue%20and%20error%3D%22%22%2C%20just%20close%20the%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._closePrompt%28errorField%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20the%20field%20is%20valid%2C%20but%20we%20are%20displaying%20a%20green%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.allrules%5Bmsg%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20txt%20%3D%20options.allrules%5Bmsg%5D.alertTextOk%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28txt%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20msg%20%3D%20txt%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._showPrompt%28errorField%2C%20msg%2C%20%22pass%22%2C%20false%2C%20options%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20the%20field%20is%20invalid%2C%20show%20the%20red%20error%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorInForm%7C%3Dtrue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.allrules%5Bmsg%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20txt%20%3D%20options.allrules%5Bmsg%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28txt%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20msg%20%3D%20txt%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._showPrompt%28errorField%2C%20msg%2C%20%22%22%2C%20false%2C%20options%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.onAjaxFormComplete%28%21errorInForm%2C%20form%2C%20json%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.onAjaxFormComplete%28true%2C%20form%2C%20%22%22%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validates%20field%2C%20shows%20prompts%20accordingly%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20field%27s%20validation%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20true%20if%20field%20is%20valid%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_validateField%3A%20function%28field%2C%20options%2C%20skipAjaxValidation%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21field.attr%28%22id%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24.error%28%22jQueryValidate%3A%20an%20ID%20attribute%20is%20required%20for%20this%20field%3A%20%22%20+%20field.attr%28%22name%22%29%20+%20%22%20class%3A%22%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20field.attr%28%22class%22%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20rulesParsing%20%3D%20field.attr%28%27class%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20getRules%20%3D%20/validate%5C%5B%28.*%29%5C%5D/.exec%28rulesParsing%29%3B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21getRules%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20getRules%5B1%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20rules%20%3D%20str.split%28/%5C%5B%7C%2C%7C%5C%5D/%29%3B%0A%09%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20true%20if%20we%20ran%20the%20ajax%20validation%2C%20tells%20the%20logic%20to%20stop%20messing%20with%20prompts%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20isAjaxValidator%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20fieldName%20%3D%20field.attr%28%22name%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20promptText%20%3D%20%22%22%3B%0A%09%09%09var%20required%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.isError%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20true%3B%0A%0A%09%09%09var%20form%20%3D%20%24%28field.closest%28%22form%22%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20rules.length%3B%20i++%29%20%7B%0A%09%09%09%09//%20Fix%20for%20adding%20spaces%20in%20the%20rules%0A%09%09%09%09rules%5Bi%5D%20%3D%20rules%5Bi%5D.replace%28%22%20%22%2C%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20errorMsg%20%3D%20undefined%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20switch%20%28rules%5Bi%5D%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22required%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20required%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._required%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22custom%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._customRegex%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%09%09%09%09%09case%20%22groupRequired%22%3A%0A%09%09%09%09%09%09//%20Check%20is%20its%20the%20first%20of%20group%2C%20if%20not%2C%20reload%20validation%20with%20first%20field%0A%09%09%09%09%09%09//%20AND%20continue%20normal%20validation%20on%20present%20field%0A%09%09%09%09%09%09var%20classGroup%20%3D%20%22%5Bclass*%3D%22%20+rules%5Bi%20+%201%5D%20+%22%5D%22%3B%09%0A%09%09%09%09%09%09var%20firstOfGroup%20%3D%20form.find%28classGroup%29.eq%280%29%3B%0A%09%09%09%09%09%09if%28firstOfGroup%5B0%5D%20%21%3D%20field%5B0%5D%29%7B%0A%09%09%09%09%09%09%09methods._validateField%28firstOfGroup%2C%20options%2C%20skipAjaxValidation%29%0A%09%09%09%09%09%09%09options.showArrow%20%3D%20true%3B%0A%09%09%09%09%09%09%09continue%3B%0A%09%09%09%09%09%09%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._groupRequired%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%09%09%09%09%09%09if%28errorMsg%29%20required%20%3D%20true%3B%0A%09%09%09%09%09%09options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22ajax%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20ajax%20has%20its%20own%20prompts%20handling%20technique%0A%09%09%09%09%09%09if%28%21skipAjaxValidation%29%7B%0A%09%09%09%09%09%09%09methods._ajax%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%09%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20isAjaxValidator%20%3D%20true%3B%0A%09%09%09%09%09%09%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22minSize%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._minSize%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22maxSize%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._maxSize%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22min%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._min%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22max%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._max%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22past%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._past%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22future%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._future%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22dateRange%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20classGroup%20%3D%20%22%5Bclass*%3D%22%20+%20rules%5Bi%20+%201%5D%20+%20%22%5D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20firstOfGroup%20%3D%20form.find%28classGroup%29.eq%280%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20secondOfGroup%20%3D%20form.find%28classGroup%29.eq%281%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//if%20one%20entry%20out%20of%20the%20pair%20has%20value%20then%20proceed%20to%20run%20through%20validation%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28firstOfGroup%5B0%5D.value%20%7C%7C%20secondOfGroup%5B0%5D.value%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._dateRange%28firstOfGroup%2C%20secondOfGroup%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28errorMsg%29%20required%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22dateTimeRange%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20classGroup%20%3D%20%22%5Bclass*%3D%22%20+%20rules%5Bi%20+%201%5D%20+%20%22%5D%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20firstOfGroup%20%3D%20form.find%28classGroup%29.eq%280%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20secondOfGroup%20%3D%20form.find%28classGroup%29.eq%281%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//if%20one%20entry%20out%20of%20the%20pair%20has%20value%20then%20proceed%20to%20run%20through%20validation%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28firstOfGroup%5B0%5D.value%20%7C%7C%20secondOfGroup%5B0%5D.value%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._dateTimeRange%28firstOfGroup%2C%20secondOfGroup%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28errorMsg%29%20required%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22maxCheckbox%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._maxCheckbox%28form%2C%20field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%20%3D%20%24%28form.find%28%22input%5Bname%3D%27%22%20+%20fieldName%20+%20%22%27%5D%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22minCheckbox%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._minCheckbox%28form%2C%20field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%20%3D%20%24%28form.find%28%22input%5Bname%3D%27%22%20+%20fieldName%20+%20%22%27%5D%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22equals%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._equals%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22funcCall%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorMsg%20%3D%20methods._funcCall%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%24.error%28%22jQueryValidator%20rule%20not%20found%22+rules%5Bi%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28errorMsg%20%21%3D%3D%20undefined%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptText%20+%3D%20errorMsg%20+%20%22%3Cbr/%3E%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.isError%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20If%20the%20rules%20required%20is%20not%20added%2C%20an%20empty%20field%20is%20not%20validated%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28%21required%20%26%26%20field.val%28%29%20%3D%3D%20%22%22%29%20options.isError%20%3D%20false%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Hack%20for%20radio/checkbox%20group%20button%2C%20the%20validation%20go%20into%20the%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20first%20radio/checkbox%20of%20the%20group%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20fieldType%20%3D%20field.prop%28%22type%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%28fieldType%20%3D%3D%20%22radio%22%20%7C%7C%20fieldType%20%3D%3D%20%22checkbox%22%29%20%26%26%20form.find%28%22input%5Bname%3D%27%22%20+%20fieldName%20+%20%22%27%5D%22%29.size%28%29%20%3E%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%20%3D%20%24%28form.find%28%22input%5Bname%3D%27%22%20+%20fieldName%20+%20%22%27%5D%5Btype%21%3Dhidden%5D%3Afirst%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28fieldType%20%3D%3D%20%22text%22%20%26%26%20form.find%28%22input%5Bname%3D%27%22%20+%20fieldName%20+%20%22%27%5D%22%29.size%28%29%20%3E%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%20%3D%20%24%28form.find%28%22input%5Bname%3D%27%22%20+%20fieldName%20+%20%22%27%5D%5Btype%21%3Dhidden%5D%3Afirst%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.isError%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._showPrompt%28field%2C%20promptText%2C%20%22%22%2C%20false%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7Delse%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21isAjaxValidator%29%20methods._closePrompt%28field%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21isAjaxValidator%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20field.trigger%28%22jqv.field.result%22%2C%20%5Bfield%2C%20options.isError%2C%20promptText%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20/*%20Record%20error%20*/%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20errindex%20%3D%20%24.inArray%28field%5B0%5D%2C%20options.InvalidFields%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28errindex%20%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.isError%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.InvalidFields.push%28field%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28%21options.isError%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.InvalidFields.splice%28errindex%2C%201%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20options.isError%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Required%20validation%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_required%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20switch%20%28field.prop%28%22type%22%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22text%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22password%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22textarea%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22file%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21field.val%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22radio%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22checkbox%22%3A%0A%09%09%09%09%09var%20form%20%3D%20field.closest%28%22form%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20name%20%3D%20field.attr%28%22name%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28form.find%28%22input%5Bname%3D%27%22%20+%20name%20+%20%22%27%5D%3Achecked%22%29.size%28%29%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28form.find%28%22input%5Bname%3D%27%22%20+%20name%20+%20%22%27%5D%22%29.size%28%29%20%3D%3D%201%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertTextCheckboxe%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertTextCheckboxMultiple%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20required%20for%20%3Cselect%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22select-one%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20added%20by%20paul@kinetek.net%20for%20select%20boxes%2C%20Thank%20you%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21field.val%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22select-multiple%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20added%20by%20paul@kinetek.net%20for%20select%20boxes%2C%20Thank%20you%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21field.find%28%22option%3Aselected%22%29.val%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%09%09/**%0A%20%20%20%20%20%20%20%20%20*%20Validate%20that%201%20from%20the%20group%20field%20is%20required%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_groupRequired%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20classGroup%20%3D%20%22%5Bclass*%3D%22%20+rules%5Bi%20+%201%5D%20+%22%5D%22%3B%0A%09%09%09var%20isValid%20%3D%20false%3B%0A%09%09%09//%20Check%20all%20fields%20from%20the%20group%0A%09%09%09field.closest%28%22form%22%29.find%28classGroup%29.each%28function%28%29%7B%0A%09%09%09%09if%28%21methods._required%28%24%28this%29%2C%20rules%2C%20i%2C%20options%29%29%7B%0A%09%09%09%09%09isValid%20%3D%20true%3B%0A%09%09%09%09%09return%20false%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%29%0A%09%09%09%0A%09%09%09if%28%21isValid%29%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validate%20Regex%20rules%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_customRegex%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20customRule%20%3D%20rules%5Bi%20+%201%5D%3B%0A%09%09%09var%20rule%20%3D%20options.allrules%5BcustomRule%5D%3B%0A%09%09%09if%28%21rule%29%20%7B%0A%09%09%09%09alert%28%22jqv%3Acustom%20rule%20not%20found%20%22+customRule%29%3B%0A%09%09%09%09return%3B%0A%09%09%09%7D%0A%09%09%09%0A%09%09%09var%20ex%3Drule.regex%3B%0A%09%09%09if%28%21ex%29%20%7B%0A%09%09%09%09alert%28%22jqv%3Acustom%20regex%20not%20found%20%22+customRule%29%3B%0A%09%09%09%09return%3B%0A%09%09%09%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20pattern%20%3D%20new%20RegExp%28ex%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21pattern.test%28field.val%28%29%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5BcustomRule%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Validate%20custom%20function%20outside%20of%20the%20engine%20scope%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_funcCall%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20functionName%20%3D%20rules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20fn%20%3D%20window%5BfunctionName%5D%20%7C%7C%20options.customFunctions%5BfunctionName%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28typeof%28fn%29%20%3D%3D%20%27function%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20fn%28field%2C%20rules%2C%20i%2C%20options%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Field%20match%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_equals%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20equalsField%20%3D%20rules%5Bi%20+%201%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28field.val%28%29%20%21%3D%20%24%28%22%23%22%20+%20equalsField%29.val%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules.equals.alertText%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Check%20the%20maximum%20size%20%28in%20characters%29%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_maxSize%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20max%20%3D%20rules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20field.val%28%29.length%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28len%20%3E%20max%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules.maxSize%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20rule.alertText%20+%20max%20+%20rule.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Check%20the%20minimum%20size%20%28in%20characters%29%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_minSize%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20min%20%3D%20rules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20field.val%28%29.length%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28len%20%3C%20min%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules.minSize%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20rule.alertText%20+%20min%20+%20rule.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Check%20number%20minimum%20value%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_min%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20min%20%3D%20parseFloat%28rules%5Bi%20+%201%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20parseFloat%28field.val%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28len%20%3C%20min%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules.min%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28rule.alertText2%29%20return%20rule.alertText%20+%20min%20+%20rule.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20rule.alertText%20+%20min%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Check%20number%20maximum%20value%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_max%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20max%20%3D%20parseFloat%28rules%5Bi%20+%201%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20parseFloat%28field.val%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28len%20%3Emax%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules.max%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28rule.alertText2%29%20return%20rule.alertText%20+%20max%20+%20rule.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//orefalo%3A%20to%20review%2C%20also%20do%20the%20translations%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20rule.alertText%20+%20max%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Checks%20date%20is%20in%20the%20past%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_past%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20p%3Drules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20pdate%20%3D%20%28p.toLowerCase%28%29%20%3D%3D%20%22now%22%29%3F%20new%20Date%28%29%3Amethods._parseDate%28p%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20vdate%20%3D%20methods._parseDate%28field.val%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28vdate%20%3C%20pdate%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules.past%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28rule.alertText2%29%20return%20rule.alertText%20+%20methods._dateToString%28pdate%29%20+%20rule.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20rule.alertText%20+%20methods._dateToString%28pdate%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Checks%20date%20is%20in%20the%20future%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_future%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20p%3Drules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20pdate%20%3D%20%28p.toLowerCase%28%29%20%3D%3D%20%22now%22%29%3F%20new%20Date%28%29%3Amethods._parseDate%28p%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20vdate%20%3D%20methods._parseDate%28field.val%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28vdate%20%3E%20pdate%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules.future%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28rule.alertText2%29%20return%20rule.alertText%20+%20methods._dateToString%28pdate%29%20+%20rule.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20rule.alertText%20+%20methods._dateToString%28pdate%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20*%20Checks%20if%20valid%20date%0A%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20*%20@param%20%7Bstring%7D%20date%20string%0A%20%20%20%20%20%20%20%20*%20@return%20a%20bool%20based%20on%20determination%20of%20valid%20date%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_isDate%3A%20function%20%28value%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20dateRegEx%20%3D%20new%20RegExp%28/%5E%5Cd%7B4%7D%5B%5C/%5C-%5D%280%3F%5B1-9%5D%7C1%5B012%5D%29%5B%5C/%5C-%5D%280%3F%5B1-9%5D%7C%5B12%5D%5B0-9%5D%7C3%5B01%5D%29%24%7C%5E%28%3F%3A%28%3F%3A%28%3F%3A0%3F%5B13578%5D%7C1%5B02%5D%29%28%5C/%7C-%2931%29%7C%28%3F%3A%28%3F%3A0%3F%5B1%2C3-9%5D%7C1%5B0-2%5D%29%28%5C/%7C-%29%28%3F%3A29%7C30%29%29%29%28%5C/%7C-%29%28%3F%3A%5B1-9%5D%5Cd%5Cd%5Cd%7C%5Cd%5B1-9%5D%5Cd%5Cd%7C%5Cd%5Cd%5B1-9%5D%5Cd%7C%5Cd%5Cd%5Cd%5B1-9%5D%29%24%7C%5E%28%3F%3A%28%3F%3A0%3F%5B1-9%5D%7C1%5B0-2%5D%29%28%5C/%7C-%29%28%3F%3A0%3F%5B1-9%5D%7C1%5Cd%7C2%5B0-8%5D%29%29%28%5C/%7C-%29%28%3F%3A%5B1-9%5D%5Cd%5Cd%5Cd%7C%5Cd%5B1-9%5D%5Cd%5Cd%7C%5Cd%5Cd%5B1-9%5D%5Cd%7C%5Cd%5Cd%5Cd%5B1-9%5D%29%24%7C%5E%280%3F2%28%5C/%7C-%2929%29%28%5C/%7C-%29%28%3F%3A%28%3F%3A0%5B48%5D00%7C%5B13579%5D%5B26%5D00%7C%5B2468%5D%5B048%5D00%29%7C%28%3F%3A%5Cd%5Cd%29%3F%28%3F%3A0%5B48%5D%7C%5B2468%5D%5B048%5D%7C%5B13579%5D%5B26%5D%29%29%24/%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28dateRegEx.test%28value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20*%20Checks%20if%20valid%20date%20time%0A%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20*%20@param%20%7Bstring%7D%20date%20string%0A%20%20%20%20%20%20%20%20*%20@return%20a%20bool%20based%20on%20determination%20of%20valid%20date%20time%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_isDateTime%3A%20function%20%28value%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20dateTimeRegEx%20%3D%20new%20RegExp%28/%5E%5Cd%7B4%7D%5B%5C/%5C-%5D%280%3F%5B1-9%5D%7C1%5B012%5D%29%5B%5C/%5C-%5D%280%3F%5B1-9%5D%7C%5B12%5D%5B0-9%5D%7C3%5B01%5D%29%5Cs+%281%5B012%5D%7C0%3F%5B1-9%5D%29%7B1%7D%3A%280%3F%5B1-5%5D%7C%5B0-6%5D%5B0-9%5D%29%7B1%7D%3A%280%3F%5B0-6%5D%7C%5B0-6%5D%5B0-9%5D%29%7B1%7D%5Cs+%28am%7Cpm%7CAM%7CPM%29%7B1%7D%24%7C%5E%28%3F%3A%28%3F%3A%28%3F%3A0%3F%5B13578%5D%7C1%5B02%5D%29%28%5C/%7C-%2931%29%7C%28%3F%3A%28%3F%3A0%3F%5B1%2C3-9%5D%7C1%5B0-2%5D%29%28%5C/%7C-%29%28%3F%3A29%7C30%29%29%29%28%5C/%7C-%29%28%3F%3A%5B1-9%5D%5Cd%5Cd%5Cd%7C%5Cd%5B1-9%5D%5Cd%5Cd%7C%5Cd%5Cd%5B1-9%5D%5Cd%7C%5Cd%5Cd%5Cd%5B1-9%5D%29%24%7C%5E%28%281%5B012%5D%7C0%3F%5B1-9%5D%29%7B1%7D%5C/%280%3F%5B1-9%5D%7C%5B12%5D%5B0-9%5D%7C3%5B01%5D%29%7B1%7D%5C/%5Cd%7B2%2C4%7D%5Cs+%281%5B012%5D%7C0%3F%5B1-9%5D%29%7B1%7D%3A%280%3F%5B1-5%5D%7C%5B0-6%5D%5B0-9%5D%29%7B1%7D%3A%280%3F%5B0-6%5D%7C%5B0-6%5D%5B0-9%5D%29%7B1%7D%5Cs+%28am%7Cpm%7CAM%7CPM%29%7B1%7D%29%24/%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28dateTimeRegEx.test%28value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20//Checks%20if%20the%20start%20date%20is%20before%20the%20end%20date%0A%20%20%20%20%20%20%20%20//returns%20true%20if%20end%20is%20later%20than%20start%0A%20%20%20%20%20%20%20%20_dateCompare%3A%20function%20%28start%2C%20end%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%28new%20Date%28start.toString%28%29%29%20%3C%20new%20Date%28end.toString%28%29%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20*%20Checks%20date%20range%0A%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20first%20field%20name%0A%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20second%20field%20name%0A%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_dateRange%3A%20function%20%28first%2C%20second%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//are%20not%20both%20populated%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%28%21first%5B0%5D.value%20%26%26%20second%5B0%5D.value%29%20%7C%7C%20%28first%5B0%5D.value%20%26%26%20%21second%5B0%5D.value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%20+%20options.allrules%5Brules%5Bi%5D%5D.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//are%20not%20both%20dates%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21methods._isDate%28first%5B0%5D.value%29%20%7C%7C%20%21methods._isDate%28second%5B0%5D.value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%20+%20options.allrules%5Brules%5Bi%5D%5D.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//are%20both%20dates%20but%20range%20is%20off%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21methods._dateCompare%28first%5B0%5D.value%2C%20second%5B0%5D.value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%20+%20options.allrules%5Brules%5Bi%5D%5D.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%0A%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20*%20Checks%20date%20time%20range%0A%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20first%20field%20name%0A%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20second%20field%20name%0A%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_dateTimeRange%3A%20function%20%28first%2C%20second%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//are%20not%20both%20populated%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%28%21first%5B0%5D.value%20%26%26%20second%5B0%5D.value%29%20%7C%7C%20%28first%5B0%5D.value%20%26%26%20%21second%5B0%5D.value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%20+%20options.allrules%5Brules%5Bi%5D%5D.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20//are%20not%20both%20dates%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21methods._isDateTime%28first%5B0%5D.value%29%20%7C%7C%20%21methods._isDateTime%28second%5B0%5D.value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%20+%20options.allrules%5Brules%5Bi%5D%5D.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20//are%20both%20dates%20but%20range%20is%20off%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21methods._dateCompare%28first%5B0%5D.value%2C%20second%5B0%5D.value%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules%5Brules%5Bi%5D%5D.alertText%20+%20options.allrules%5Brules%5Bi%5D%5D.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Max%20number%20of%20checkbox%20selected%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_maxCheckbox%3A%20function%28form%2C%20field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20nbCheck%20%3D%20rules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20groupname%20%3D%20field.attr%28%22name%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20groupSize%20%3D%20form.find%28%22input%5Bname%3D%27%22%20+%20groupname%20+%20%22%27%5D%3Achecked%22%29.size%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28groupSize%20%3E%20nbCheck%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.allrules.maxCheckbox.alertText2%29%20return%20options.allrules.maxCheckbox.alertText%20+%20%22%20%22%20+%20nbCheck%20+%20%22%20%22%20+%20options.allrules.maxCheckbox.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules.maxCheckbox.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Min%20number%20of%20checkbox%20selected%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20an%20error%20string%20if%20validation%20failed%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_minCheckbox%3A%20function%28form%2C%20field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20nbCheck%20%3D%20rules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20groupname%20%3D%20field.attr%28%22name%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20groupSize%20%3D%20form.find%28%22input%5Bname%3D%27%22%20+%20groupname%20+%20%22%27%5D%3Achecked%22%29.size%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28groupSize%20%3C%20nbCheck%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.showArrow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20options.allrules.minCheckbox.alertText%20+%20%22%20%22%20+%20nbCheck%20+%20%22%20%22%20+%20options.allrules.minCheckbox.alertText2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Ajax%20field%20validation%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BArray%5BString%5D%7D%20rules%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bint%7D%20i%20rules%20index%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20nothing%21%20the%20ajax%20validator%20handles%20the%20prompts%20itself%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_ajax%3A%20function%28field%2C%20rules%2C%20i%2C%20options%29%20%7B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20errorSelector%20%3D%20rules%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20rule%20%3D%20options.allrules%5BerrorSelector%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20extraData%20%3D%20rule.extraData%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20extraDataDynamic%20%3D%20rule.extraDataDynamic%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21extraData%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20extraData%20%3D%20%22%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28extraDataDynamic%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tmpData%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20domIds%20%3D%20String%28extraDataDynamic%29.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20domIds.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20id%20%3D%20domIds%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24%28id%29.length%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20inputValue%20%3D%20field.closest%28%22form%22%29.find%28id%29.val%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20keyValue%20%3D%20id.replace%28%27%23%27%2C%20%27%27%29%20+%20%27%3D%27%20+%20escape%28inputValue%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpData.push%28keyValue%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20extraDataDynamic%20%3D%20tmpData.join%28%22%26%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20extraDataDynamic%20%3D%20%22%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21options.isError%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24.ajax%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20%22GET%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20url%3A%20rule.url%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cache%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dataType%3A%20%22json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20data%3A%20%22fieldId%3D%22%20+%20field.attr%28%22id%22%29%20+%20%22%26fieldValue%3D%22%20+%20field.val%28%29%20+%20%22%26extraData%3D%22%20+%20extraData%20+%20%22%26%22%20+%20extraDataDynamic%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20field%3A%20field%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rule%3A%20rule%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods%3A%20methods%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options%3A%20options%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20beforeSend%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20build%20the%20loading%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20loadingText%20%3D%20rule.alertTextLoad%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28loadingText%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._showPrompt%28field%2C%20loadingText%2C%20%22load%22%2C%20true%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20error%3A%20function%28data%2C%20transport%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._ajaxError%28data%2C%20transport%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20success%3A%20function%28json%29%20%7B%0A%09%09%09%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20asynchronously%20called%20on%20success%2C%20data%20is%20the%20json%20answer%20from%20the%20server%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20errorFieldId%20%3D%20json%5B0%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20errorField%20%3D%20%24%28%24%28%22%23%22%20+%20errorFieldId%29%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20make%20sure%20we%20found%20the%20element%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28errorField.length%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20status%20%3D%20json%5B1%5D%3B%0A%09%09%09%09%09%09%09//%20read%20the%20optional%20msg%20from%20the%20server%0A%09%09%09%09%09%09%09var%20msg%20%3D%20json%5B2%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21status%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20Houston%20we%20got%20a%20problem%20-%20display%20an%20red%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.ajaxValidCache%5BerrorFieldId%5D%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.isError%20%3D%20true%3B%0A%0A%09%09%09%09%09%09%09%09//%20resolve%20the%20msg%20prompt%0A%09%09%09%09%09%09%09%09if%28msg%29%20%7B%0A%09%09%09%09%09%09%09%09%09if%20%28options.allrules%5Bmsg%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09var%20txt%20%3D%20options.allrules%5Bmsg%5D.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09if%20%28txt%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09msg%20%3D%20txt%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09%09%09else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20msg%20%3D%20rule.alertText%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%09%09%09%09%09%09%09%09methods._showPrompt%28errorField%2C%20msg%2C%20%22%22%2C%20true%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.ajaxValidCache%5BerrorFieldId%5D%20%21%3D%3D%20undefined%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.ajaxValidCache%5BerrorFieldId%5D%20%3D%20true%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20resolves%20the%20msg%20prompt%0A%09%09%09%09%09%09%09%09if%28msg%29%20%7B%0A%09%09%09%09%09%09%09%09%09if%20%28options.allrules%5Bmsg%5D%29%20%7B%0A%09%09%09%09%09%09%09%20%20%20%20%20%20%20%20%20%20%20%09var%20txt%20%3D%20options.allrules%5Bmsg%5D.alertTextOk%3B%0A%09%09%09%09%09%09%09%20%20%20%20%20%20%20%20%20%20%20%09if%20%28txt%29%0A%09%09%09%09%09%09%09%20%20%20%20%20%20%20%20%20%20%20%09%09msg%20%3D%20txt%3B%0A%09%09%09%09%09%09%09%20%20%20%20%20%20%20%20%7D%0A%09%09%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09%09%09else%0A%09%09%09%09%09%09%09%20%20%20%20%20%20%20%09msg%20%3D%20rule.alertTextOk%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%09%09%09%09%09%09%09%09//%20see%20if%20we%20should%20display%20a%20green%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28msg%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._showPrompt%28errorField%2C%20msg%2C%20%22pass%22%2C%20true%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._closePrompt%28errorField%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20errorField.trigger%28%22jqv.field.result%22%2C%20%5BerrorField%2C%20%21options.isError%2C%20msg%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Common%20method%20to%20handle%20ajax%20errors%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BObject%7D%20data%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BObject%7D%20transport%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_ajaxError%3A%20function%28data%2C%20transport%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28data.status%20%3D%3D%200%20%26%26%20transport%20%3D%3D%20null%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alert%28%22The%20page%20is%20not%20served%20from%20a%20server%21%20ajax%20call%20failed%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%28typeof%20console%20%21%3D%20%22undefined%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%22Ajax%20error%3A%20%22%20+%20data.status%20+%20%22%20%22%20+%20transport%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20date%20-%3E%20string%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BObject%7D%20date%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_dateToString%3A%20function%28date%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20date.getFullYear%28%29+%22-%22+%28date.getMonth%28%29+1%29+%22-%22+date.getDate%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Parses%20an%20ISO%20date%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20d%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_parseDate%3A%20function%28d%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20dateParts%20%3D%20d.split%28%22-%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28dateParts%3D%3Dd%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dateParts%20%3D%20d.split%28%22/%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20new%20Date%28dateParts%5B0%5D%2C%20%28dateParts%5B1%5D%20-%201%29%20%2CdateParts%5B2%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Builds%20or%20updates%20a%20prompt%20with%20the%20given%20information%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20promptText%20html%20text%20to%20display%20type%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20type%20the%20type%20of%20bubble%3A%20%27pass%27%20%28green%29%2C%20%27load%27%20%28black%29%20anything%20else%20%28red%29%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bboolean%7D%20ajaxed%20-%20use%20to%20mark%20fields%20than%20being%20validated%20with%20ajax%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%20options%20user%20options%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_showPrompt%3A%20function%28field%2C%20promptText%2C%20type%2C%20ajaxed%2C%20options%2C%20ajaxform%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20prompt%20%3D%20methods._getPrompt%28field%29%3B%0A%09%09%09//%20The%20ajax%20submit%20errors%20are%20not%20see%20has%20an%20error%20in%20the%20form%2C%0A%09%09%09//%20When%20the%20form%20errors%20are%20returned%2C%20the%20engine%20see%202%20bubbles%2C%20but%20those%20are%20ebing%20closed%20by%20the%20engine%20at%20the%20same%20time%0A%09%09%09//%20Because%20no%20error%20was%20found%20befor%20submitting%0A%09%09%09if%28ajaxform%29%20prompt%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._updatePrompt%28field%2C%20prompt%2C%20promptText%2C%20type%2C%20ajaxed%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20methods._buildPrompt%28field%2C%20promptText%2C%20type%2C%20ajaxed%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Builds%20and%20shades%20a%20prompt%20for%20the%20given%20field.%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20promptText%20html%20text%20to%20display%20type%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20type%20the%20type%20of%20bubble%3A%20%27pass%27%20%28green%29%2C%20%27load%27%20%28black%29%20anything%20else%20%28red%29%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bboolean%7D%20ajaxed%20-%20use%20to%20mark%20fields%20than%20being%20validated%20with%20ajax%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%20options%20user%20options%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_buildPrompt%3A%20function%28field%2C%20promptText%2C%20type%2C%20ajaxed%2C%20options%29%20%7B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20create%20the%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20prompt%20%3D%20%24%28%27%3Cdiv%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20prompt.addClass%28methods._getClassName%28field.attr%28%22id%22%29%29%20+%20%22formError%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20add%20a%20class%20name%20to%20identify%20the%20parent%20form%20of%20the%20prompt%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28field.is%28%22%3Ainput%22%29%29%20prompt.addClass%28%22parentForm%22+methods._getClassName%28field.parents%28%27form%27%29.attr%28%22id%22%29%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20prompt.addClass%28%22formError%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20switch%20%28type%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22pass%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.addClass%28%22greenPopup%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22load%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.addClass%28%22blackPopup%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20it%20has%20error%20%20*/%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20options.InvalidCount++%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28ajaxed%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.addClass%28%22ajaxed%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20create%20the%20prompt%20content%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20promptContent%20%3D%20%24%28%27%3Cdiv%3E%27%29.addClass%28%22formErrorContent%22%29.html%28promptText%29.appendTo%28prompt%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20create%20the%20css%20arrow%20pointing%20at%20the%20field%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20note%20that%20there%20is%20no%20triangle%20on%20max-checkbox%20and%20radio%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28options.showArrow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20arrow%20%3D%20%24%28%27%3Cdiv%3E%27%29.addClass%28%22formErrorArrow%22%29%3B%0A%0A%09%09%09%09//prompt%20positioning%20adjustment%20support.%20Usage%3A%20positionType%3AXshift%2CYshift%20%28for%20ex.%3A%20bottomLeft%3A+20%20or%20bottomLeft%3A-20%2C+10%29%0A%09%09%09%09var%20positionType%3Dfield.data%28%22promptPosition%22%29%20%7C%7C%20options.promptPosition%3B%0A%09%09%09%09if%20%28typeof%28positionType%29%3D%3D%27string%27%29%20%7B%0A%09%09%09%09%09if%20%28positionType.indexOf%28%22%3A%22%29%21%3D-1%29%20%7B%0A%09%09%09%09%09%09positionType%3DpositionType.substring%280%2CpositionType.indexOf%28%22%3A%22%29%29%3B%0A%09%09%09%09%09%7D%3B%0A%09%09%09%09%7D%3B%0A%0A%09%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20switch%20%28positionType%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22bottomLeft%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22bottomRight%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.find%28%22.formErrorContent%22%29.before%28arrow%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrow.addClass%28%22formErrorArrowBottom%22%29.html%28%27%3Cdiv%20class%3D%22line1%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line2%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line3%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line4%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line5%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line6%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line7%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line8%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line9%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line10%22%3E%3C%21--%20--%3E%3C/div%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22topLeft%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20case%20%22topRight%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20arrow.html%28%27%3Cdiv%20class%3D%22line10%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line9%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line8%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line7%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line6%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line5%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line4%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line3%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line2%22%3E%3C%21--%20--%3E%3C/div%3E%3Cdiv%20class%3D%22line1%22%3E%3C%21--%20--%3E%3C/div%3E%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.append%28arrow%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%09%20%20%20%20if%20%28options.relative%29%20%7B%0A%09%09//%20empty%20relative%20span%20does%20not%20disturb%20page%20layout%0A%09%09//%20prompt%20positioned%20absolute%20to%20relative%20span%0A%09%09//%20vertical-align%3Atop%20so%20position%20calculations%20are%20the%20same%20as%20isOverflown%0A%09%09var%20outer%20%3D%20%24%28%27%3Cspan%3E%27%29.css%28%27position%27%2C%27relative%27%29.css%28%27vertical-align%27%2C%27top%27%29.addClass%28%27formErrorOuter%27%29.append%28prompt.css%28%27position%27%2C%27absolute%27%29%29%3B%0A%09%09field.before%28outer%29%3B%0A%09%20%20%20%20%7D%20else%20if%20%28options.isOverflown%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//Cedric%3A%20Needed%20if%20a%20container%20is%20in%20position%3Arelative%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20insert%20prompt%20in%20the%20form%20or%20in%20the%20overflown%20container%3F%0A%20%20%20%20%20%20%20%20%20%20%20%20%09field.before%28prompt%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24%28%22body%22%29.append%28prompt%29%3B%0A%09%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20pos%20%3D%20methods._calculatePosition%28field%2C%20prompt%2C%20options%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20prompt.css%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22top%22%3A%20pos.callerTopPosition%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22left%22%3A%20pos.callerleftPosition%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22marginTop%22%3A%20pos.marginTopSize%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22opacity%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29.data%28%22callerField%22%2C%20field%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20prompt.animate%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22opacity%22%3A%200.87%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Updates%20the%20prompt%20text%20field%20-%20the%20field%20for%20which%20the%20prompt%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%20field%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20promptText%20html%20text%20to%20display%20type%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20type%20the%20type%20of%20bubble%3A%20%27pass%27%20%28green%29%2C%20%27load%27%20%28black%29%20anything%20else%20%28red%29%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bboolean%7D%20ajaxed%20-%20use%20to%20mark%20fields%20than%20being%20validated%20with%20ajax%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%20options%20user%20options%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_updatePrompt%3A%20function%28field%2C%20prompt%2C%20promptText%2C%20type%2C%20ajaxed%2C%20options%2C%20noAnimation%29%20%7B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28prompt%29%20%7B%0A%09%09%09%09if%20%28typeof%20type%20%21%3D%3D%20%22undefined%22%29%20%7B%0A%09%20%20%20%20%20%20%20%20%20%20%20%20%09if%20%28type%20%3D%3D%20%22pass%22%29%0A%20%20%20%20%20%20%20%20%09%20%20%20%20%20%20%20%20%20%20%20%20prompt.addClass%28%22greenPopup%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09else%0A%09%09%09%09%09%20%20%20%20prompt.removeClass%28%22greenPopup%22%29%3B%0A%0A%09%09%09%09%09if%20%28type%20%3D%3D%20%22load%22%29%0A%09%09%09%09%09%20%20%20%20prompt.addClass%28%22blackPopup%22%29%3B%0A%09%09%09%09%09else%0A%09%09%09%09%09%20%20%20%20prompt.removeClass%28%22blackPopup%22%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09if%20%28ajaxed%29%0A%09%09%09%09%20%20%20%20prompt.addClass%28%22ajaxed%22%29%3B%0A%09%09%09%09else%0A%09%09%09%09%20%20%20%20prompt.removeClass%28%22ajaxed%22%29%3B%0A%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.find%28%22.formErrorContent%22%29.html%28promptText%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20pos%20%3D%20methods._calculatePosition%28field%2C%20prompt%2C%20options%29%3B%0A%09%09%09%09css%20%3D%20%7B%22top%22%3A%20pos.callerTopPosition%2C%0A%09%09%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22left%22%3A%20pos.callerleftPosition%2C%0A%09%09%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22marginTop%22%3A%20pos.marginTopSize%7D%3B%0A%09%09%0A%09%09%09%09if%20%28noAnimation%29%0A%09%09%09%09%20%09prompt.css%28css%29%3B%0A%09%09%09%09else%0A%09%09%09%09%20%09prompt.animate%28css%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Closes%20the%20prompt%20associated%20with%20the%20given%20field%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20field%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_closePrompt%3A%20function%28field%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20prompt%20%3D%20methods._getPrompt%28field%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.fadeTo%28%22fast%22%2C%200%2C%20function%28%29%20%7B%0A%09%09%20%20%20%20prompt.parent%28%27.formErrorOuter%27%29.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prompt.remove%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20closePrompt%3A%20function%28field%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20methods._closePrompt%28field%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Returns%20the%20error%20prompt%20matching%20the%20field%20if%20any%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20field%0A%20%20%20%20%20%20%20%20%20*%20@return%20undefined%20or%20the%20error%20prompt%20%28jqObject%29%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%09%09%20%20_getPrompt%3A%20function%28field%29%20%7B%0A%09%09%20%20%20%20var%20className%20%3D%20methods._getClassName%28field.attr%28%22id%22%29%29%20+%20%22formError%22%3B%0A%09%09%20%20%20%20var%20match%20%3D%20%24%28%22.%22%20+%20methods._escapeExpression%28className%29%29%5B0%5D%3B%0A%09%09%20%20%20%20if%20%28match%29%0A%09%09%20%20%20%20%20%20return%20%24%28match%29%3B%0A%09%09%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Returns%20the%20escapade%20classname%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7Bselector%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20className%0A%20%20%20%20%20%20%20%20%20*/%09%09%0A%09%09%20%20_escapeExpression%3A%20function%20%28selector%29%20%7B%0A%09%09%20%20%20%20return%20selector.replace%28/%28%5B%23%3B%26%2C%5C.%5C+%5C*%5C%7E%27%3A%22%5C%21%5C%5E%24%5C%5B%5C%5D%5C%28%5C%29%3D%3E%5C%7C%5D%29/g%2C%20%22%5C%5C%241%22%29%3B%0A%09%09%20%20%7D%2C%0A%09%09/**%0A%09%09%20*%20returns%20true%20if%20we%20are%20in%20a%20RTLed%20document%0A%09%09%20*%0A%09%09%20*%20@param%20%7BjqObject%7D%20field%0A%09%09%20*/%0A%09%09isRTL%3A%20function%28field%29%0A%09%09%7B%0A%09%09%09var%20%24document%20%3D%20%24%28document%29%3B%0A%09%09%09var%20%24body%20%3D%20%24%28%27body%27%29%3B%0A%09%09%09var%20rtl%20%3D%0A%09%09%09%09%28field%20%26%26%20field.hasClass%28%27rtl%27%29%29%20%7C%7C%0A%09%09%09%09%28field%20%26%26%20%28field.attr%28%27dir%27%29%20%7C%7C%20%27%27%29.toLowerCase%28%29%3D%3D%3D%27rtl%27%29%20%7C%7C%0A%09%09%09%09%24document.hasClass%28%27rtl%27%29%20%7C%7C%0A%09%09%09%09%28%24document.attr%28%27dir%27%29%20%7C%7C%20%27%27%29.toLowerCase%28%29%3D%3D%3D%27rtl%27%20%7C%7C%0A%09%09%09%09%24body.hasClass%28%27rtl%27%29%20%7C%7C%0A%09%09%09%09%28%24body.attr%28%27dir%27%29%20%7C%7C%20%27%27%29.toLowerCase%28%29%3D%3D%3D%27rtl%27%3B%0A%09%09%09return%20Boolean%28rtl%29%3B%0A%09%09%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20*%20Calculates%20prompt%20position%0A%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20field%0A%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20the%20prompt%0A%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20options%0A%20%20%20%20%20%20%20%20*%20@return%20positions%0A%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_calculatePosition%3A%20function%20%28field%2C%20promptElmt%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20promptTopPosition%2C%20promptleftPosition%2C%20marginTopSize%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20fieldWidth%20%3D%20field.width%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20promptHeight%20%3D%20promptElmt.height%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20overflow%20%3D%20options.isOverflown%20%7C%7C%20options.relative%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28overflow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20is%20the%20form%20contained%20in%20an%20overflown%20container%3F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptTopPosition%20%3D%20promptleftPosition%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20compensation%20for%20the%20arrow%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20marginTopSize%20%3D%20-promptHeight%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20offset%20%3D%20field.offset%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptTopPosition%20%3D%20offset.top%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptleftPosition%20%3D%20offset.left%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20marginTopSize%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%09%09%09//prompt%20positioning%20adjustment%20support%20%0A%09%09%09//now%20you%20can%20adjust%20prompt%20position%0A%09%09%09//usage%3A%20positionType%3AXshift%2CYshift%0A%09%09%09//for%20example%3A%20%0A%09%09%09//%20%20%20bottomLeft%3A+20%20means%20bottomLeft%20position%20shifted%20by%2020%20pixels%20right%20horizontally%0A%09%09%09//%20%20%20topRight%3A20%2C%20-15%20means%20topRight%20position%20shifted%20by%2020%20pixels%20to%20right%20and%2015%20pixels%20to%20top%0A%09%09%09//You%20can%20use%20+pixels%2C%20-%20pixels.%20If%20no%20sign%20is%20provided%20than%20+%20is%20default.%0A%09%09%09var%20positionType%3Dfield.data%28%22promptPosition%22%29%20%7C%7C%20options.promptPosition%3B%0A%09%09%09var%20shift1%3D%22%22%3B%0A%09%09%09var%20shift2%3D%22%22%3B%0A%09%09%09var%20shiftX%3D0%3B%0A%09%09%09var%20shiftY%3D0%3B%0A%09%09%09if%20%28typeof%28positionType%29%3D%3D%27string%27%29%20%7B%0A%09%09%09//do%20we%20have%20any%20position%20adjustments%20%3F%0A%09%09%09%09if%20%28positionType.indexOf%28%22%3A%22%29%21%3D-1%29%20%7B%0A%09%09%09%09%09shift1%3DpositionType.substring%28positionType.indexOf%28%22%3A%22%29+1%29%3B%0A%09%09%09%09%09positionType%3DpositionType.substring%280%2CpositionType.indexOf%28%22%3A%22%29%29%3B%0A%0A%09%09%09%09%09//if%20any%20advanced%20positioning%20will%20be%20needed%20%28percents%20or%20something%20else%29%20-%20parser%20should%20be%20added%20here%0A%09%09%09%09%09//for%20now%20we%20use%20simple%20parseInt%28%29%0A%09%09%09%09%09%0A%09%09%09%09%09//do%20we%20have%20second%20parameter%3F%0A%09%09%09%09%09if%20%28shift1.indexOf%28%22%2C%22%29%21%3D-1%29%20%7B%0A%09%09%09%09%09%09shift2%3Dshift1.substring%28shift1.indexOf%28%22%2C%22%29+1%29%3B%0A%09%09%09%09%09%09shift1%3Dshift1.substring%280%2Cshift1.indexOf%28%22%2C%22%29%29%3B%0A%09%09%09%09%09%09shiftY%3DparseInt%28shift2%29%3B%0A%09%09%09%09%09%09if%20%28isNaN%28shiftY%29%29%20%7BshiftY%3D0%3B%7D%3B%0A%09%09%09%09%09%7D%3B%0A%09%09%09%09%09%0A%09%09%09%09%09shiftX%3DparseInt%28shift1%29%3B%0A%09%09%09%09%09if%20%28isNaN%28shift1%29%29%20%7Bshift1%3D0%3B%7D%3B%0A%09%09%09%09%09%0A%09%09%09%09%7D%3B%0A%09%09%09%7D%3B%0A%0A%09%09%09if%28%21methods.isRTL%28field%29%29%0A%09%09%09%7B%0A%09%09%09%09switch%20%28positionType%29%20%7B%0A%09%09%09%09%09default%3A%0A%09%09%09%09%09case%20%22topRight%22%3A%0A%09%09%09%09%09%09if%20%28overflow%29%0A%09%09%09%09%09%09%09//%20Is%20the%20form%20contained%20in%20an%20overflown%20container%3F%0A%09%09%09%09%09%09%09promptleftPosition%20+%3D%20fieldWidth%20-%2030%3B%0A%09%09%09%09%09%09else%20%7B%0A%09%09%09%09%09%09%09promptleftPosition%20+%3D%20fieldWidth%20-%2030%3B%0A%09%09%09%09%09%09%09promptTopPosition%20+%3D%20-promptHeight%20-2%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22topLeft%22%3A%0A%09%09%09%09%09%09promptTopPosition%20+%3D%20-promptHeight%20-%2010%3B%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22centerRight%22%3A%0A%09%09%09%09%09%09if%20%28overflow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptTopPosition%3Dfield.outerHeight%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptleftPosition%3Dfield.outerWidth%281%29+5%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptleftPosition+%3Dfield.outerWidth%28%29+5%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22centerLeft%22%3A%0A%09%09%09%09%09%09promptleftPosition%20-%3D%20promptElmt.width%28%29%20+%202%3B%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22bottomLeft%22%3A%0A%09%09%09%09%09%09promptTopPosition%20%3D%20promptTopPosition%20+%20field.height%28%29%20+%2015%3B%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22bottomRight%22%3A%0A%09%09%09%09%09%09promptleftPosition%20+%3D%20fieldWidth%20-%2030%3B%0A%09%09%09%09%09%09promptTopPosition%20+%3D%20field.height%28%29%20+%205%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%09else%0A%09%09%09%7B%0A%09%09%09%09switch%20%28positionType%29%20%7B%0A%09%09%09%09%09default%3A%0A%09%09%09%09%09case%20%22topLeft%22%3A%0A%09%09%09%09%09%09if%20%28overflow%29%0A%09%09%09%09%09%09%09//%20Is%20the%20form%20contained%20in%20an%20overflown%20container%3F%0A%09%09%09%09%09%09%09promptleftPosition%20-%3D%20promptElmt.width%28%29%20-%2030%3B%0A%09%09%09%09%09%09else%20%7B%0A%09%09%09%09%09%09%09promptleftPosition%20-%3D%20promptElmt.width%28%29%20-%2030%3B%0A%09%09%09%09%09%09%09promptTopPosition%20+%3D%20-promptHeight%20-2%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22topRight%22%3A%0A%09%09%09%09%09%09if%20%28overflow%29%0A%09%09%09%09%09%09%09//%20Is%20the%20form%20contained%20in%20an%20overflown%20container%3F%0A%09%09%09%09%09%09%09promptleftPosition%20+%3D%20fieldWidth%20-%20promptElmt.width%28%29%3B%0A%09%09%09%09%09%09else%20%7B%0A%09%09%09%09%09%09%09promptleftPosition%20+%3D%20fieldWidth%20-%20promptElmt.width%28%29%3B%0A%09%09%09%09%09%09%09promptTopPosition%20+%3D%20-promptHeight%20-2%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22centerRight%22%3A%0A%09%09%09%09%09%09if%20%28overflow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptTopPosition%3Dfield.outerHeight%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptleftPosition%3Dfield.outerWidth%281%29+5%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20promptleftPosition+%3Dfield.outerWidth%28%29+5%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22centerLeft%22%3A%0A%09%09%09%09%09%09promptleftPosition%20-%3D%20promptElmt.width%28%29%20+%202%3B%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22bottomLeft%22%3A%0A%09%09%09%09%09%09promptleftPosition%20+%3D%20-promptElmt.width%28%29%20+%2030%3B%0A%09%09%09%09%09%09promptTopPosition%20%3D%20promptTopPosition%20+%20field.height%28%29%20+%2015%3B%0A%09%09%09%09%09%09break%3B%0A%09%09%09%09%09case%20%22bottomRight%22%3A%0A%09%09%09%09%09%09promptleftPosition%20+%3D%20fieldWidth%20-%20promptElmt.width%28%29%3B%0A%09%09%09%09%09%09promptTopPosition%20+%3D%20field.height%28%29%20+%2015%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%0A%09%09%09//apply%20adjusments%20if%20any%0A%09%09%09promptleftPosition%20+%3D%20shiftX%3B%0A%09%09%09promptTopPosition%20%20+%3D%20shiftY%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22callerTopPosition%22%3A%20promptTopPosition%20+%20%22px%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22callerleftPosition%22%3A%20promptleftPosition%20+%20%22px%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22marginTopSize%22%3A%20marginTopSize%20+%20%22px%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Saves%20the%20user%20options%20and%20variables%20in%20the%20form.data%0A%20%20%20%20%20%20%20%20%20*%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BjqObject%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20form%20-%20the%20form%20where%20the%20user%20option%20should%20be%20saved%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BMap%7D%0A%20%20%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20options%20-%20the%20user%20options%0A%20%20%20%20%20%20%20%20%20*%20@return%20the%20user%20options%20%28extended%20from%20the%20defaults%29%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_saveOptions%3A%20function%28form%2C%20options%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20is%20there%20a%20language%20localisation%20%3F%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24.validationEngineLanguage%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20allRules%20%3D%20%24.validationEngineLanguage.allRules%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%24.error%28%22jQuery.validationEngine%20rules%20are%20not%20loaded%2C%20plz%20add%20localization%20files%20to%20the%20page%22%29%3B%0A%09%09%09//%20---%20Internals%20DO%20NOT%20TOUCH%20or%20OVERLOAD%20---%0A%09%09%09//%20validation%20rules%20and%20i18%0A%09%09%09%24.validationEngine.defaults.allrules%20%3D%20allRules%3B%0A%09%09%09%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20userOptions%20%3D%20%24.extend%28true%2C%7B%7D%2C%24.validationEngine.defaults%2Coptions%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Needed%20to%20be%20retro%20compatible%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28userOptions.isOverflown%29%20userOptions.relative%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28userOptions.relative%29%20userOptions.isOverflown%20%3D%20true%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20form.data%28%27jqv%27%2C%20userOptions%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20userOptions%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20/**%0A%20%20%20%20%20%20%20%20%20*%20Removes%20forbidden%20characters%20from%20class%20name%0A%20%20%20%20%20%20%20%20%20*%20@param%20%7BString%7D%20className%0A%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20_getClassName%3A%20function%28className%29%20%7B%0A%20%20%20%20%20%20%20%20%09if%28className%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20className.replace%28/%3A/g%2C%20%22_%22%29.replace%28/%5C./g%2C%20%22_%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20/**%0A%20%20%20%20%20*%20Plugin%20entry%20point.%0A%20%20%20%20%20*%20You%20may%20pass%20an%20action%20as%20a%20parameter%20or%20a%20list%20of%20options.%0A%20%20%20%20%20*%20if%20none%2C%20the%20init%20and%20attach%20methods%20are%20being%20called.%0A%20%20%20%20%20*%20Remember%3A%20if%20you%20pass%20options%2C%20the%20attached%20method%20is%20NOT%20called%20automatically%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20@param%20%7BString%7D%0A%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20method%20%28optional%29%20action%0A%20%20%20%20%20*/%0A%20%20%20%20%24.fn.validationEngine%20%3D%20function%28method%29%20%7B%0A%0A%20%20%20%20%20%20%20%20var%20form%20%3D%20%24%28this%29%3B%0A%09%09if%28%21form%5B0%5D%29%20return%20false%3B%20%20//%20stop%20here%20if%20the%20form%20does%20not%20exist%0A%09%09%20%20%0A%20%20%20%20%20%20%20%20if%20%28typeof%28method%29%20%3D%3D%20%27string%27%20%26%26%20method.charAt%280%29%20%21%3D%20%27_%27%20%26%26%20methods%5Bmethod%5D%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20make%20sure%20init%20is%20called%20once%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28method%20%21%3D%20%22showPrompt%22%20%26%26%20method%20%21%3D%20%22hidePrompt%22%20%26%26%20method%20%21%3D%20%22hide%22%20%26%26%20method%20%21%3D%20%22hideAll%22%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%09methods.init.apply%28form%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20methods%5Bmethod%5D.apply%28form%2C%20Array.prototype.slice.call%28arguments%2C%201%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20%28typeof%20method%20%3D%3D%20%27object%27%20%7C%7C%20%21method%29%20%7B%0A%09%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20default%20constructor%20with%20or%20without%20arguments%0A%09%09%09methods.init.apply%28form%2C%20arguments%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20methods.attach.apply%28form%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24.error%28%27Method%20%27%20+%20method%20+%20%27%20does%20not%20exist%20in%20jQuery.validationEngine%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%0A%0A%09//%20LEAK%20GLOBAL%20OPTIONS%0A%09%24.validationEngine%3D%20%7Bdefaults%3A%7B%0A%0A%20%20%20%20%20%20%20%20//%20Name%20of%20the%20event%20triggering%20field%20validation%0A%20%20%20%20%20%20%20%20validationEventTrigger%3A%20%22blur%22%2C%0A%20%20%20%20%20%20%20%20//%20Automatically%20scroll%20viewport%20to%20the%20first%20error%0A%20%20%20%20%20%20%20%20scroll%3A%20true%2C%0A%09%09//%20Focus%20on%20the%20first%20input%0A%09%09focusFirstField%3Atrue%2C%0A%20%20%20%20%20%20%20%20//%20Opening%20box%20position%2C%20possible%20locations%20are%3A%20topLeft%2C%0A%20%20%20%20%20%20%20%20//%20topRight%2C%20bottomLeft%2C%20centerRight%2C%20bottomRight%0A%20%20%20%20%20%20%20%20promptPosition%3A%20%22topRight%22%2C%0A%20%20%20%20%20%20%20%20bindMethod%3A%22bind%22%2C%0A%09%09//%20internal%2C%20automatically%20set%20to%20true%20when%20it%20parse%20a%20_ajax%20rule%0A%09%09inlineAjax%3A%20false%2C%0A%20%20%20%20%20%20%20%20//%20if%20set%20to%20true%2C%20the%20form%20data%20is%20sent%20asynchronously%20via%20ajax%20to%20the%20form.action%20url%20%28get%29%0A%20%20%20%20%20%20%20%20ajaxFormValidation%3A%20false%2C%0A%20%20%20%20%20%20%20%20//%20Ajax%20form%20validation%20callback%20method%3A%20boolean%20onComplete%28form%2C%20status%2C%20errors%2C%20options%29%0A%20%20%20%20%20%20%20%20//%20retuns%20false%20if%20the%20form.submit%20event%20needs%20to%20be%20canceled.%0A%09%09ajaxFormValidationURL%3A%20false%2C%0A%20%20%20%20%20%20%20%20//%20The%20url%20to%20send%20the%20submit%20ajax%20validation%20%28default%20to%20action%29%0A%20%20%20%20%20%20%20%20onAjaxFormComplete%3A%20%24.noop%2C%0A%20%20%20%20%20%20%20%20//%20called%20right%20before%20the%20ajax%20call%2C%20may%20return%20false%20to%20cancel%0A%20%20%20%20%20%20%20%20onBeforeAjaxFormValidation%3A%20%24.noop%2C%0A%20%20%20%20%20%20%20%20//%20Stops%20form%20from%20submitting%20and%20execute%20function%20assiciated%20with%20it%0A%20%20%20%20%20%20%20%20onValidationComplete%3A%20false%2C%0A%0A%09%20%20%20%20//%20better%20relative%20positioning%0A%09%20%20%20%20relative%3A%20false%2C%0A%20%20%20%20%20%20%20%20//%20Used%20when%20the%20form%20is%20displayed%20within%20a%20scrolling%20DIV%0A%20%20%20%20%20%20%20%20isOverflown%3A%20false%2C%0A%20%20%20%20%20%20%20%20overflownDIV%3A%20%22%22%2C%0A%09%09%0A%09%09//%20Used%20when%20you%20have%20a%20form%20fields%20too%20close%20and%20the%20errors%20messages%20are%20on%20top%20of%20other%20disturbing%20viewing%20messages%0A%20%20%20%20%20%20%20%20doNotShowAllErrosOnSubmit%3A%20false%2C%0A%0A%20%20%20%20%20%20%20%20//%20true%20when%20form%20and%20fields%20are%20binded%0A%20%20%20%20%20%20%20%20binded%3A%20false%2C%0A%20%20%20%20%20%20%20%20//%20set%20to%20true%2C%20when%20the%20prompt%20arrow%20needs%20to%20be%20displayed%0A%20%20%20%20%20%20%20%20showArrow%3A%20true%2C%0A%20%20%20%20%20%20%20%20//%20did%20one%20of%20the%20validation%20fail%20%3F%20kept%20global%20to%20stop%20further%20ajax%20validations%0A%20%20%20%20%20%20%20%20isError%3A%20false%2C%0A%20%20%20%20%20%20%20%20//%20Caches%20field%20validation%20status%2C%20typically%20only%20bad%20status%20are%20created.%0A%20%20%20%20%20%20%20%20//%20the%20array%20is%20used%20during%20ajax%20form%20validation%20to%20detect%20issues%20early%20and%20prevent%20an%20expensive%20submit%0A%20%20%20%20%20%20%20%20ajaxValidCache%3A%20%7B%7D%2C%0A%20%20%20%20%20%20%20%20//%20Auto%20update%20prompt%20position%20after%20window%20resize%0A%09%09autoPositionUpdate%3A%20false%2C%0A%0A%20%20%20%20%20%20%20%20InvalidFields%3A%20%5B%5D%2C%0A%09%09onSuccess%3A%20false%2C%0A%09%09onFailure%3A%20false%0A%20%20%20%20%7D%7D%3B%0A%09%24%28function%28%29%7B%24.validationEngine.defaults.promptPosition%20%3D%20methods.isRTL%28%29%3F%27topLeft%27%3A%22topRight%22%7D%29%3B%0A%7D%29%28jQuery%29%3B%0A%0A//%5D%5D%3E%0A%3C/script%3E%0A%0A%3Cscript%20type%3D%27text/javascript%27%3E%0A//%3C%21%5BCDATA%5B%0A%0A/**%0A%20*%0A%20*%20Color%20picker%0A%20*%20Author%3A%20Stefan%20Petre%20www.eyecon.ro%0A%20*%20%0A%20*%20Dual%20licensed%20under%20the%20MIT%20and%20GPL%20licenses%0A%20*%20%0A%20*/%0A%28function%20%28%24%29%20%7B%0A%09var%20ColorPicker%20%3D%20function%20%28%29%20%7B%0A%09%09var%0A%09%09%09ids%20%3D%20%7B%7D%2C%0A%09%09%09inAction%2C%0A%09%09%09charMin%20%3D%2065%2C%0A%09%09%09visible%2C%0A%09%09%09tpl%20%3D%20%27%3Cdiv%20class%3D%22colorpicker%22%3E%3Cdiv%20class%3D%22colorpicker_color%22%3E%3Cdiv%3E%3Cdiv%3E%3C/div%3E%3C/div%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_hue%22%3E%3Cdiv%3E%3C/div%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_new_color%22%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_current_color%22%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_hex%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%226%22%20size%3D%226%22%20/%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_rgb_r%20colorpicker_field%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%223%22%20size%3D%223%22%20/%3E%3Cspan%3E%3C/span%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_rgb_g%20colorpicker_field%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%223%22%20size%3D%223%22%20/%3E%3Cspan%3E%3C/span%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_rgb_b%20colorpicker_field%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%223%22%20size%3D%223%22%20/%3E%3Cspan%3E%3C/span%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_hsb_h%20colorpicker_field%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%223%22%20size%3D%223%22%20/%3E%3Cspan%3E%3C/span%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_hsb_s%20colorpicker_field%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%223%22%20size%3D%223%22%20/%3E%3Cspan%3E%3C/span%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_hsb_b%20colorpicker_field%22%3E%3Cinput%20type%3D%22text%22%20maxlength%3D%223%22%20size%3D%223%22%20/%3E%3Cspan%3E%3C/span%3E%3C/div%3E%3Cdiv%20class%3D%22colorpicker_submit%22%3E%3C/div%3E%3C/div%3E%27%2C%0A%09%09%09defaults%20%3D%20%7B%0A%09%09%09%09eventName%3A%20%27click%27%2C%0A%09%09%09%09onShow%3A%20function%20%28%29%20%7B%7D%2C%0A%09%09%09%09onBeforeShow%3A%20function%28%29%7B%7D%2C%0A%09%09%09%09onHide%3A%20function%20%28%29%20%7B%7D%2C%0A%09%09%09%09onChange%3A%20function%20%28%29%20%7B%7D%2C%0A%09%09%09%09onSubmit%3A%20function%20%28%29%20%7B%7D%2C%0A%09%09%09%09color%3A%20%27ff0000%27%2C%0A%09%09%09%09livePreview%3A%20true%2C%0A%09%09%09%09flat%3A%20false%0A%09%09%09%7D%2C%0A%09%09%09fillRGBFields%20%3D%20function%20%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09var%20rgb%20%3D%20HSBToRGB%28hsb%29%3B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.fields%0A%09%09%09%09%09.eq%281%29.val%28rgb.r%29.end%28%29%0A%09%09%09%09%09.eq%282%29.val%28rgb.g%29.end%28%29%0A%09%09%09%09%09.eq%283%29.val%28rgb.b%29.end%28%29%3B%0A%09%09%09%7D%2C%0A%09%09%09fillHSBFields%20%3D%20function%20%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.fields%0A%09%09%09%09%09.eq%284%29.val%28hsb.h%29.end%28%29%0A%09%09%09%09%09.eq%285%29.val%28hsb.s%29.end%28%29%0A%09%09%09%09%09.eq%286%29.val%28hsb.b%29.end%28%29%3B%0A%09%09%09%7D%2C%0A%09%09%09fillHexFields%20%3D%20function%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.fields%0A%09%09%09%09%09.eq%280%29.val%28HSBToHex%28hsb%29%29.end%28%29%3B%0A%09%09%09%7D%2C%0A%09%09%09setSelector%20%3D%20function%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.selector.css%28%27backgroundColor%27%2C%20%27%23%27%20+%20HSBToHex%28%7Bh%3A%20hsb.h%2C%20s%3A%20100%2C%20b%3A%20100%7D%29%29%3B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.selectorIndic.css%28%7B%0A%09%09%09%09%09left%3A%20parseInt%28150%20*%20hsb.s/100%2C%2010%29%2C%0A%09%09%09%09%09top%3A%20parseInt%28150%20*%20%28100-hsb.b%29/100%2C%2010%29%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%2C%0A%09%09%09setHue%20%3D%20function%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.hue.css%28%27top%27%2C%20parseInt%28150%20-%20150%20*%20hsb.h/360%2C%2010%29%29%3B%0A%09%09%09%7D%2C%0A%09%09%09setCurrentColor%20%3D%20function%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.currentColor.css%28%27backgroundColor%27%2C%20%27%23%27%20+%20HSBToHex%28hsb%29%29%3B%0A%09%09%09%7D%2C%0A%09%09%09setNewColor%20%3D%20function%20%28hsb%2C%20cal%29%20%7B%0A%09%09%09%09%24%28cal%29.data%28%27colorpicker%27%29.newColor.css%28%27backgroundColor%27%2C%20%27%23%27%20+%20HSBToHex%28hsb%29%29%3B%0A%09%09%09%7D%2C%0A%09%09%09keyDown%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20pressedKey%20%3D%20ev.charCode%20%7C%7C%20ev.keyCode%20%7C%7C%20-1%3B%0A%09%09%09%09if%20%28%28pressedKey%20%3E%20charMin%20%26%26%20pressedKey%20%3C%3D%2090%29%20%7C%7C%20pressedKey%20%3D%3D%2032%29%20%7B%0A%09%09%09%09%09return%20false%3B%0A%09%09%09%09%7D%0A%09%09%09%09var%20cal%20%3D%20%24%28this%29.parent%28%29.parent%28%29%3B%0A%09%09%09%09if%20%28cal.data%28%27colorpicker%27%29.livePreview%20%3D%3D%3D%20true%29%20%7B%0A%09%09%09%09%09change.apply%28this%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%2C%0A%09%09%09change%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20cal%20%3D%20%24%28this%29.parent%28%29.parent%28%29%2C%20col%3B%0A%09%09%09%09if%20%28this.parentNode.className.indexOf%28%27_hex%27%29%20%3E%200%29%20%7B%0A%09%09%09%09%09cal.data%28%27colorpicker%27%29.color%20%3D%20col%20%3D%20HexToHSB%28fixHex%28this.value%29%29%3B%0A%09%09%09%09%7D%20else%20if%20%28this.parentNode.className.indexOf%28%27_hsb%27%29%20%3E%200%29%20%7B%0A%09%09%09%09%09cal.data%28%27colorpicker%27%29.color%20%3D%20col%20%3D%20fixHSB%28%7B%0A%09%09%09%09%09%09h%3A%20parseInt%28cal.data%28%27colorpicker%27%29.fields.eq%284%29.val%28%29%2C%2010%29%2C%0A%09%09%09%09%09%09s%3A%20parseInt%28cal.data%28%27colorpicker%27%29.fields.eq%285%29.val%28%29%2C%2010%29%2C%0A%09%09%09%09%09%09b%3A%20parseInt%28cal.data%28%27colorpicker%27%29.fields.eq%286%29.val%28%29%2C%2010%29%0A%09%09%09%09%09%7D%29%3B%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09cal.data%28%27colorpicker%27%29.color%20%3D%20col%20%3D%20RGBToHSB%28fixRGB%28%7B%0A%09%09%09%09%09%09r%3A%20parseInt%28cal.data%28%27colorpicker%27%29.fields.eq%281%29.val%28%29%2C%2010%29%2C%0A%09%09%09%09%09%09g%3A%20parseInt%28cal.data%28%27colorpicker%27%29.fields.eq%282%29.val%28%29%2C%2010%29%2C%0A%09%09%09%09%09%09b%3A%20parseInt%28cal.data%28%27colorpicker%27%29.fields.eq%283%29.val%28%29%2C%2010%29%0A%09%09%09%09%09%7D%29%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09if%20%28ev%29%20%7B%0A%09%09%09%09%09fillRGBFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09fillHexFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09fillHSBFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09setSelector%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09setHue%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09setNewColor%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09cal.data%28%27colorpicker%27%29.onChange.apply%28cal%2C%20%5Bcol%2C%20HSBToHex%28col%29%2C%20HSBToRGB%28col%29%5D%29%3B%0A%09%09%09%7D%2C%0A%09%09%09blur%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20cal%20%3D%20%24%28this%29.parent%28%29.parent%28%29%3B%0A%09%09%09%09cal.data%28%27colorpicker%27%29.fields.parent%28%29.removeClass%28%27colorpicker_focus%27%29%3B%0A%09%09%09%7D%2C%0A%09%09%09focus%20%3D%20function%20%28%29%20%7B%0A%09%09%09%09charMin%20%3D%20this.parentNode.className.indexOf%28%27_hex%27%29%20%3E%200%20%3F%2070%20%3A%2065%3B%0A%09%09%09%09%24%28this%29.parent%28%29.parent%28%29.data%28%27colorpicker%27%29.fields.parent%28%29.removeClass%28%27colorpicker_focus%27%29%3B%0A%09%09%09%09%24%28this%29.parent%28%29.addClass%28%27colorpicker_focus%27%29%3B%0A%09%09%09%7D%2C%0A%09%09%09downIncrement%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20field%20%3D%20%24%28this%29.parent%28%29.find%28%27input%27%29.focus%28%29%3B%0A%09%09%09%09var%20current%20%3D%20%7B%0A%09%09%09%09%09el%3A%20%24%28this%29.parent%28%29.addClass%28%27colorpicker_slider%27%29%2C%0A%09%09%09%09%09max%3A%20this.parentNode.className.indexOf%28%27_hsb_h%27%29%20%3E%200%20%3F%20360%20%3A%20%28this.parentNode.className.indexOf%28%27_hsb%27%29%20%3E%200%20%3F%20100%20%3A%20255%29%2C%0A%09%09%09%09%09y%3A%20ev.pageY%2C%0A%09%09%09%09%09field%3A%20field%2C%0A%09%09%09%09%09val%3A%20parseInt%28field.val%28%29%2C%2010%29%2C%0A%09%09%09%09%09preview%3A%20%24%28this%29.parent%28%29.parent%28%29.data%28%27colorpicker%27%29.livePreview%09%09%09%09%09%0A%09%09%09%09%7D%3B%0A%09%09%09%09%24%28document%29.bind%28%27mouseup%27%2C%20current%2C%20upIncrement%29%3B%0A%09%09%09%09%24%28document%29.bind%28%27mousemove%27%2C%20current%2C%20moveIncrement%29%3B%0A%09%09%09%7D%2C%0A%09%09%09moveIncrement%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09ev.data.field.val%28Math.max%280%2C%20Math.min%28ev.data.max%2C%20parseInt%28ev.data.val%20+%20ev.pageY%20-%20ev.data.y%2C%2010%29%29%29%29%3B%0A%09%09%09%09if%20%28ev.data.preview%29%20%7B%0A%09%09%09%09%09change.apply%28ev.data.field.get%280%29%2C%20%5Btrue%5D%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09upIncrement%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09change.apply%28ev.data.field.get%280%29%2C%20%5Btrue%5D%29%3B%0A%09%09%09%09ev.data.el.removeClass%28%27colorpicker_slider%27%29.find%28%27input%27%29.focus%28%29%3B%0A%09%09%09%09%24%28document%29.unbind%28%27mouseup%27%2C%20upIncrement%29%3B%0A%09%09%09%09%24%28document%29.unbind%28%27mousemove%27%2C%20moveIncrement%29%3B%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09downHue%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20current%20%3D%20%7B%0A%09%09%09%09%09cal%3A%20%24%28this%29.parent%28%29%2C%0A%09%09%09%09%09y%3A%20%24%28this%29.offset%28%29.top%0A%09%09%09%09%7D%3B%0A%09%09%09%09current.preview%20%3D%20current.cal.data%28%27colorpicker%27%29.livePreview%3B%0A%09%09%09%09%24%28document%29.bind%28%27mouseup%27%2C%20current%2C%20upHue%29%3B%0A%09%09%09%09%24%28document%29.bind%28%27mousemove%27%2C%20current%2C%20moveHue%29%3B%0A%09%09%09%7D%2C%0A%09%09%09moveHue%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09change.apply%28%0A%09%09%09%09%09ev.data.cal.data%28%27colorpicker%27%29%0A%09%09%09%09%09%09.fields%0A%09%09%09%09%09%09.eq%284%29%0A%09%09%09%09%09%09.val%28parseInt%28360*%28150%20-%20Math.max%280%2CMath.min%28150%2C%28ev.pageY%20-%20ev.data.y%29%29%29%29/150%2C%2010%29%29%0A%09%09%09%09%09%09.get%280%29%2C%0A%09%09%09%09%09%5Bev.data.preview%5D%0A%09%09%09%09%29%3B%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09upHue%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09fillRGBFields%28ev.data.cal.data%28%27colorpicker%27%29.color%2C%20ev.data.cal.get%280%29%29%3B%0A%09%09%09%09fillHexFields%28ev.data.cal.data%28%27colorpicker%27%29.color%2C%20ev.data.cal.get%280%29%29%3B%0A%09%09%09%09%24%28document%29.unbind%28%27mouseup%27%2C%20upHue%29%3B%0A%09%09%09%09%24%28document%29.unbind%28%27mousemove%27%2C%20moveHue%29%3B%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09downSelector%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20current%20%3D%20%7B%0A%09%09%09%09%09cal%3A%20%24%28this%29.parent%28%29%2C%0A%09%09%09%09%09pos%3A%20%24%28this%29.offset%28%29%0A%09%09%09%09%7D%3B%0A%09%09%09%09current.preview%20%3D%20current.cal.data%28%27colorpicker%27%29.livePreview%3B%0A%09%09%09%09%24%28document%29.bind%28%27mouseup%27%2C%20current%2C%20upSelector%29%3B%0A%09%09%09%09%24%28document%29.bind%28%27mousemove%27%2C%20current%2C%20moveSelector%29%3B%0A%09%09%09%7D%2C%0A%09%09%09moveSelector%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09change.apply%28%0A%09%09%09%09%09ev.data.cal.data%28%27colorpicker%27%29%0A%09%09%09%09%09%09.fields%0A%09%09%09%09%09%09.eq%286%29%0A%09%09%09%09%09%09.val%28parseInt%28100*%28150%20-%20Math.max%280%2CMath.min%28150%2C%28ev.pageY%20-%20ev.data.pos.top%29%29%29%29/150%2C%2010%29%29%0A%09%09%09%09%09%09.end%28%29%0A%09%09%09%09%09%09.eq%285%29%0A%09%09%09%09%09%09.val%28parseInt%28100*%28Math.max%280%2CMath.min%28150%2C%28ev.pageX%20-%20ev.data.pos.left%29%29%29%29/150%2C%2010%29%29%0A%09%09%09%09%09%09.get%280%29%2C%0A%09%09%09%09%09%5Bev.data.preview%5D%0A%09%09%09%09%29%3B%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09upSelector%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09fillRGBFields%28ev.data.cal.data%28%27colorpicker%27%29.color%2C%20ev.data.cal.get%280%29%29%3B%0A%09%09%09%09fillHexFields%28ev.data.cal.data%28%27colorpicker%27%29.color%2C%20ev.data.cal.get%280%29%29%3B%0A%09%09%09%09%24%28document%29.unbind%28%27mouseup%27%2C%20upSelector%29%3B%0A%09%09%09%09%24%28document%29.unbind%28%27mousemove%27%2C%20moveSelector%29%3B%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09enterSubmit%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09%24%28this%29.addClass%28%27colorpicker_focus%27%29%3B%0A%09%09%09%7D%2C%0A%09%09%09leaveSubmit%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09%24%28this%29.removeClass%28%27colorpicker_focus%27%29%3B%0A%09%09%09%7D%2C%0A%09%09%09clickSubmit%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20cal%20%3D%20%24%28this%29.parent%28%29%3B%0A%09%09%09%09var%20col%20%3D%20cal.data%28%27colorpicker%27%29.color%3B%0A%09%09%09%09cal.data%28%27colorpicker%27%29.origColor%20%3D%20col%3B%0A%09%09%09%09setCurrentColor%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09cal.data%28%27colorpicker%27%29.onSubmit%28col%2C%20HSBToHex%28col%29%2C%20HSBToRGB%28col%29%2C%20cal.data%28%27colorpicker%27%29.el%29%3B%0A%09%09%09%7D%2C%0A%09%09%09show%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09var%20cal%20%3D%20%24%28%27%23%27%20+%20%24%28this%29.data%28%27colorpickerId%27%29%29%3B%0A%09%09%09%09cal.data%28%27colorpicker%27%29.onBeforeShow.apply%28this%2C%20%5Bcal.get%280%29%5D%29%3B%0A%09%09%09%09var%20pos%20%3D%20%24%28this%29.offset%28%29%3B%0A%09%09%09%09var%20viewPort%20%3D%20getViewport%28%29%3B%0A%09%09%09%09var%20top%20%3D%20pos.top%20+%20this.offsetHeight%3B%0A%09%09%09%09var%20left%20%3D%20pos.left%3B%0A%09%09%09%09if%20%28top%20+%20176%20%3E%20viewPort.t%20+%20viewPort.h%29%20%7B%0A%09%09%09%09%09top%20-%3D%20this.offsetHeight%20+%20176%3B%0A%09%09%09%09%7D%0A%09%09%09%09if%20%28left%20+%20356%20%3E%20viewPort.l%20+%20viewPort.w%29%20%7B%0A%09%09%09%09%09left%20-%3D%20356%3B%0A%09%09%09%09%7D%0A%09%09%09%09cal.css%28%7Bleft%3A%20left%20+%20%27px%27%2C%20top%3A%20top%20+%20%27px%27%7D%29%3B%0A%09%09%09%09if%20%28cal.data%28%27colorpicker%27%29.onShow.apply%28this%2C%20%5Bcal.get%280%29%5D%29%20%21%3D%20false%29%20%7B%0A%09%09%09%09%09cal.show%28%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09%24%28document%29.bind%28%27mousedown%27%2C%20%7Bcal%3A%20cal%7D%2C%20hide%29%3B%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09hide%20%3D%20function%20%28ev%29%20%7B%0A%09%09%09%09if%20%28%21isChildOf%28ev.data.cal.get%280%29%2C%20ev.target%2C%20ev.data.cal.get%280%29%29%29%20%7B%0A%09%09%09%09%09if%20%28ev.data.cal.data%28%27colorpicker%27%29.onHide.apply%28this%2C%20%5Bev.data.cal.get%280%29%5D%29%20%21%3D%20false%29%20%7B%0A%09%09%09%09%09%09ev.data.cal.hide%28%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%09%24%28document%29.unbind%28%27mousedown%27%2C%20hide%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%2C%0A%09%09%09isChildOf%20%3D%20function%28parentEl%2C%20el%2C%20container%29%20%7B%0A%09%09%09%09if%20%28parentEl%20%3D%3D%20el%29%20%7B%0A%09%09%09%09%09return%20true%3B%0A%09%09%09%09%7D%0A%09%09%09%09if%20%28parentEl.contains%29%20%7B%0A%09%09%09%09%09return%20parentEl.contains%28el%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09if%20%28%20parentEl.compareDocumentPosition%20%29%20%7B%0A%09%09%09%09%09return%20%21%21%28parentEl.compareDocumentPosition%28el%29%20%26%2016%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09var%20prEl%20%3D%20el.parentNode%3B%0A%09%09%09%09while%28prEl%20%26%26%20prEl%20%21%3D%20container%29%20%7B%0A%09%09%09%09%09if%20%28prEl%20%3D%3D%20parentEl%29%0A%09%09%09%09%09%09return%20true%3B%0A%09%09%09%09%09prEl%20%3D%20prEl.parentNode%3B%0A%09%09%09%09%7D%0A%09%09%09%09return%20false%3B%0A%09%09%09%7D%2C%0A%09%09%09getViewport%20%3D%20function%20%28%29%20%7B%0A%09%09%09%09var%20m%20%3D%20document.compatMode%20%3D%3D%20%27CSS1Compat%27%3B%0A%09%09%09%09return%20%7B%0A%09%09%09%09%09l%20%3A%20window.pageXOffset%20%7C%7C%20%28m%20%3F%20document.documentElement.scrollLeft%20%3A%20document.body.scrollLeft%29%2C%0A%09%09%09%09%09t%20%3A%20window.pageYOffset%20%7C%7C%20%28m%20%3F%20document.documentElement.scrollTop%20%3A%20document.body.scrollTop%29%2C%0A%09%09%09%09%09w%20%3A%20window.innerWidth%20%7C%7C%20%28m%20%3F%20document.documentElement.clientWidth%20%3A%20document.body.clientWidth%29%2C%0A%09%09%09%09%09h%20%3A%20window.innerHeight%20%7C%7C%20%28m%20%3F%20document.documentElement.clientHeight%20%3A%20document.body.clientHeight%29%0A%09%09%09%09%7D%3B%0A%09%09%09%7D%2C%0A%09%09%09fixHSB%20%3D%20function%20%28hsb%29%20%7B%0A%09%09%09%09return%20%7B%0A%09%09%09%09%09h%3A%20Math.min%28360%2C%20Math.max%280%2C%20hsb.h%29%29%2C%0A%09%09%09%09%09s%3A%20Math.min%28100%2C%20Math.max%280%2C%20hsb.s%29%29%2C%0A%09%09%09%09%09b%3A%20Math.min%28100%2C%20Math.max%280%2C%20hsb.b%29%29%0A%09%09%09%09%7D%3B%0A%09%09%09%7D%2C%20%0A%09%09%09fixRGB%20%3D%20function%20%28rgb%29%20%7B%0A%09%09%09%09return%20%7B%0A%09%09%09%09%09r%3A%20Math.min%28255%2C%20Math.max%280%2C%20rgb.r%29%29%2C%0A%09%09%09%09%09g%3A%20Math.min%28255%2C%20Math.max%280%2C%20rgb.g%29%29%2C%0A%09%09%09%09%09b%3A%20Math.min%28255%2C%20Math.max%280%2C%20rgb.b%29%29%0A%09%09%09%09%7D%3B%0A%09%09%09%7D%2C%0A%09%09%09fixHex%20%3D%20function%20%28hex%29%20%7B%0A%09%09%09%09var%20len%20%3D%206%20-%20hex.length%3B%0A%09%09%09%09if%20%28len%20%3E%200%29%20%7B%0A%09%09%09%09%09var%20o%20%3D%20%5B%5D%3B%0A%09%09%09%09%09for%20%28var%20i%3D0%3B%20i%3Clen%3B%20i++%29%20%7B%0A%09%09%09%09%09%09o.push%28%270%27%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%09o.push%28hex%29%3B%0A%09%09%09%09%09hex%20%3D%20o.join%28%27%27%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09return%20hex%3B%0A%09%09%09%7D%2C%20%0A%09%09%09HexToRGB%20%3D%20function%20%28hex%29%20%7B%0A%09%09%09%09var%20hex%20%3D%20parseInt%28%28%28hex.indexOf%28%27%23%27%29%20%3E%20-1%29%20%3F%20hex.substring%281%29%20%3A%20hex%29%2C%2016%29%3B%0A%09%09%09%09return%20%7Br%3A%20hex%20%3E%3E%2016%2C%20g%3A%20%28hex%20%26%200x00FF00%29%20%3E%3E%208%2C%20b%3A%20%28hex%20%26%200x0000FF%29%7D%3B%0A%09%09%09%7D%2C%0A%09%09%09HexToHSB%20%3D%20function%20%28hex%29%20%7B%0A%09%09%09%09return%20RGBToHSB%28HexToRGB%28hex%29%29%3B%0A%09%09%09%7D%2C%0A%09%09%09RGBToHSB%20%3D%20function%20%28rgb%29%20%7B%0A%09%09%09%09var%20hsb%20%3D%20%7B%0A%09%09%09%09%09h%3A%200%2C%0A%09%09%09%09%09s%3A%200%2C%0A%09%09%09%09%09b%3A%200%0A%09%09%09%09%7D%3B%0A%09%09%09%09var%20min%20%3D%20Math.min%28rgb.r%2C%20rgb.g%2C%20rgb.b%29%3B%0A%09%09%09%09var%20max%20%3D%20Math.max%28rgb.r%2C%20rgb.g%2C%20rgb.b%29%3B%0A%09%09%09%09var%20delta%20%3D%20max%20-%20min%3B%0A%09%09%09%09hsb.b%20%3D%20max%3B%0A%09%09%09%09if%20%28max%20%21%3D%200%29%20%7B%0A%09%09%09%09%09%0A%09%09%09%09%7D%0A%09%09%09%09hsb.s%20%3D%20max%20%21%3D%200%20%3F%20255%20*%20delta%20/%20max%20%3A%200%3B%0A%09%09%09%09if%20%28hsb.s%20%21%3D%200%29%20%7B%0A%09%09%09%09%09if%20%28rgb.r%20%3D%3D%20max%29%20%7B%0A%09%09%09%09%09%09hsb.h%20%3D%20%28rgb.g%20-%20rgb.b%29%20/%20delta%3B%0A%09%09%09%09%09%7D%20else%20if%20%28rgb.g%20%3D%3D%20max%29%20%7B%0A%09%09%09%09%09%09hsb.h%20%3D%202%20+%20%28rgb.b%20-%20rgb.r%29%20/%20delta%3B%0A%09%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09%09hsb.h%20%3D%204%20+%20%28rgb.r%20-%20rgb.g%29%20/%20delta%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09hsb.h%20%3D%20-1%3B%0A%09%09%09%09%7D%0A%09%09%09%09hsb.h%20*%3D%2060%3B%0A%09%09%09%09if%20%28hsb.h%20%3C%200%29%20%7B%0A%09%09%09%09%09hsb.h%20+%3D%20360%3B%0A%09%09%09%09%7D%0A%09%09%09%09hsb.s%20*%3D%20100/255%3B%0A%09%09%09%09hsb.b%20*%3D%20100/255%3B%0A%09%09%09%09return%20hsb%3B%0A%09%09%09%7D%2C%0A%09%09%09HSBToRGB%20%3D%20function%20%28hsb%29%20%7B%0A%09%09%09%09var%20rgb%20%3D%20%7B%7D%3B%0A%09%09%09%09var%20h%20%3D%20Math.round%28hsb.h%29%3B%0A%09%09%09%09var%20s%20%3D%20Math.round%28hsb.s*255/100%29%3B%0A%09%09%09%09var%20v%20%3D%20Math.round%28hsb.b*255/100%29%3B%0A%09%09%09%09if%28s%20%3D%3D%200%29%20%7B%0A%09%09%09%09%09rgb.r%20%3D%20rgb.g%20%3D%20rgb.b%20%3D%20v%3B%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09var%20t1%20%3D%20v%3B%0A%09%09%09%09%09var%20t2%20%3D%20%28255-s%29*v/255%3B%0A%09%09%09%09%09var%20t3%20%3D%20%28t1-t2%29*%28h%2560%29/60%3B%0A%09%09%09%09%09if%28h%3D%3D360%29%20h%20%3D%200%3B%0A%09%09%09%09%09if%28h%3C60%29%20%7Brgb.r%3Dt1%3B%09rgb.b%3Dt2%3B%20rgb.g%3Dt2+t3%7D%0A%09%09%09%09%09else%20if%28h%3C120%29%20%7Brgb.g%3Dt1%3B%20rgb.b%3Dt2%3B%09rgb.r%3Dt1-t3%7D%0A%09%09%09%09%09else%20if%28h%3C180%29%20%7Brgb.g%3Dt1%3B%20rgb.r%3Dt2%3B%09rgb.b%3Dt2+t3%7D%0A%09%09%09%09%09else%20if%28h%3C240%29%20%7Brgb.b%3Dt1%3B%20rgb.r%3Dt2%3B%09rgb.g%3Dt1-t3%7D%0A%09%09%09%09%09else%20if%28h%3C300%29%20%7Brgb.b%3Dt1%3B%20rgb.g%3Dt2%3B%09rgb.r%3Dt2+t3%7D%0A%09%09%09%09%09else%20if%28h%3C360%29%20%7Brgb.r%3Dt1%3B%20rgb.g%3Dt2%3B%09rgb.b%3Dt1-t3%7D%0A%09%09%09%09%09else%20%7Brgb.r%3D0%3B%20rgb.g%3D0%3B%09rgb.b%3D0%7D%0A%09%09%09%09%7D%0A%09%09%09%09return%20%7Br%3AMath.round%28rgb.r%29%2C%20g%3AMath.round%28rgb.g%29%2C%20b%3AMath.round%28rgb.b%29%7D%3B%0A%09%09%09%7D%2C%0A%09%09%09RGBToHex%20%3D%20function%20%28rgb%29%20%7B%0A%09%09%09%09var%20hex%20%3D%20%5B%0A%09%09%09%09%09rgb.r.toString%2816%29%2C%0A%09%09%09%09%09rgb.g.toString%2816%29%2C%0A%09%09%09%09%09rgb.b.toString%2816%29%0A%09%09%09%09%5D%3B%0A%09%09%09%09%24.each%28hex%2C%20function%20%28nr%2C%20val%29%20%7B%0A%09%09%09%09%09if%20%28val.length%20%3D%3D%201%29%20%7B%0A%09%09%09%09%09%09hex%5Bnr%5D%20%3D%20%270%27%20+%20val%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%29%3B%0A%09%09%09%09return%20hex.join%28%27%27%29%3B%0A%09%09%09%7D%2C%0A%09%09%09HSBToHex%20%3D%20function%20%28hsb%29%20%7B%0A%09%09%09%09return%20RGBToHex%28HSBToRGB%28hsb%29%29%3B%0A%09%09%09%7D%2C%0A%09%09%09restoreOriginal%20%3D%20function%20%28%29%20%7B%0A%09%09%09%09var%20cal%20%3D%20%24%28this%29.parent%28%29%3B%0A%09%09%09%09var%20col%20%3D%20cal.data%28%27colorpicker%27%29.origColor%3B%0A%09%09%09%09cal.data%28%27colorpicker%27%29.color%20%3D%20col%3B%0A%09%09%09%09fillRGBFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09fillHexFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09fillHSBFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09setSelector%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09setHue%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09setNewColor%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%7D%3B%0A%09%09return%20%7B%0A%09%09%09init%3A%20function%20%28opt%29%20%7B%0A%09%09%09%09opt%20%3D%20%24.extend%28%7B%7D%2C%20defaults%2C%20opt%7C%7C%7B%7D%29%3B%0A%09%09%09%09if%20%28typeof%20opt.color%20%3D%3D%20%27string%27%29%20%7B%0A%09%09%09%09%09opt.color%20%3D%20HexToHSB%28opt.color%29%3B%0A%09%09%09%09%7D%20else%20if%20%28opt.color.r%20%21%3D%20undefined%20%26%26%20opt.color.g%20%21%3D%20undefined%20%26%26%20opt.color.b%20%21%3D%20undefined%29%20%7B%0A%09%09%09%09%09opt.color%20%3D%20RGBToHSB%28opt.color%29%3B%0A%09%09%09%09%7D%20else%20if%20%28opt.color.h%20%21%3D%20undefined%20%26%26%20opt.color.s%20%21%3D%20undefined%20%26%26%20opt.color.b%20%21%3D%20undefined%29%20%7B%0A%09%09%09%09%09opt.color%20%3D%20fixHSB%28opt.color%29%3B%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09return%20this%3B%0A%09%09%09%09%7D%0A%09%09%09%09return%20this.each%28function%20%28%29%20%7B%0A%09%09%09%09%09if%20%28%21%24%28this%29.data%28%27colorpickerId%27%29%29%20%7B%0A%09%09%09%09%09%09var%20options%20%3D%20%24.extend%28%7B%7D%2C%20opt%29%3B%0A%09%09%09%09%09%09options.origColor%20%3D%20opt.color%3B%0A%09%09%09%09%09%09var%20id%20%3D%20%27collorpicker_%27%20+%20parseInt%28Math.random%28%29%20*%201000%29%3B%0A%09%09%09%09%09%09%24%28this%29.data%28%27colorpickerId%27%2C%20id%29%3B%0A%09%09%09%09%09%09var%20cal%20%3D%20%24%28tpl%29.attr%28%27id%27%2C%20id%29%3B%0A%09%09%09%09%09%09if%20%28options.flat%29%20%7B%0A%09%09%09%09%09%09%09cal.appendTo%28this%29.show%28%29%3B%0A%09%09%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09%09%09cal.appendTo%28document.body%29%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09options.fields%20%3D%20cal%0A%09%09%09%09%09%09%09%09%09%09%09.find%28%27input%27%29%0A%09%09%09%09%09%09%09%09%09%09%09%09.bind%28%27keyup%27%2C%20keyDown%29%0A%09%09%09%09%09%09%09%09%09%09%09%09.bind%28%27change%27%2C%20change%29%0A%09%09%09%09%09%09%09%09%09%09%09%09.bind%28%27blur%27%2C%20blur%29%0A%09%09%09%09%09%09%09%09%09%09%09%09.bind%28%27focus%27%2C%20focus%29%3B%0A%09%09%09%09%09%09cal%0A%09%09%09%09%09%09%09.find%28%27span%27%29.bind%28%27mousedown%27%2C%20downIncrement%29.end%28%29%0A%09%09%09%09%09%09%09.find%28%27%3Ediv.colorpicker_current_color%27%29.bind%28%27click%27%2C%20restoreOriginal%29%3B%0A%09%09%09%09%09%09options.selector%20%3D%20cal.find%28%27div.colorpicker_color%27%29.bind%28%27mousedown%27%2C%20downSelector%29%3B%0A%09%09%09%09%09%09options.selectorIndic%20%3D%20options.selector.find%28%27div%20div%27%29%3B%0A%09%09%09%09%09%09options.el%20%3D%20this%3B%0A%09%09%09%09%09%09options.hue%20%3D%20cal.find%28%27div.colorpicker_hue%20div%27%29%3B%0A%09%09%09%09%09%09cal.find%28%27div.colorpicker_hue%27%29.bind%28%27mousedown%27%2C%20downHue%29%3B%0A%09%09%09%09%09%09options.newColor%20%3D%20cal.find%28%27div.colorpicker_new_color%27%29%3B%0A%09%09%09%09%09%09options.currentColor%20%3D%20cal.find%28%27div.colorpicker_current_color%27%29%3B%0A%09%09%09%09%09%09cal.data%28%27colorpicker%27%2C%20options%29%3B%0A%09%09%09%09%09%09cal.find%28%27div.colorpicker_submit%27%29%0A%09%09%09%09%09%09%09.bind%28%27mouseenter%27%2C%20enterSubmit%29%0A%09%09%09%09%09%09%09.bind%28%27mouseleave%27%2C%20leaveSubmit%29%0A%09%09%09%09%09%09%09.bind%28%27click%27%2C%20clickSubmit%29%3B%0A%09%09%09%09%09%09fillRGBFields%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09fillHSBFields%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09fillHexFields%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setHue%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setSelector%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setCurrentColor%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setNewColor%28options.color%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09if%20%28options.flat%29%20%7B%0A%09%09%09%09%09%09%09cal.css%28%7B%0A%09%09%09%09%09%09%09%09position%3A%20%27relative%27%2C%0A%09%09%09%09%09%09%09%09display%3A%20%27block%27%0A%09%09%09%09%09%09%09%7D%29%3B%0A%09%09%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09%09%09%24%28this%29.bind%28options.eventName%2C%20show%29%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%2C%0A%09%09%09showPicker%3A%20function%28%29%20%7B%0A%09%09%09%09return%20this.each%28%20function%20%28%29%20%7B%0A%09%09%09%09%09if%20%28%24%28this%29.data%28%27colorpickerId%27%29%29%20%7B%0A%09%09%09%09%09%09show.apply%28this%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%2C%0A%09%09%09hidePicker%3A%20function%28%29%20%7B%0A%09%09%09%09return%20this.each%28%20function%20%28%29%20%7B%0A%09%09%09%09%09if%20%28%24%28this%29.data%28%27colorpickerId%27%29%29%20%7B%0A%09%09%09%09%09%09%24%28%27%23%27%20+%20%24%28this%29.data%28%27colorpickerId%27%29%29.hide%28%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%2C%0A%09%09%09setColor%3A%20function%28col%29%20%7B%0A%09%09%09%09if%20%28typeof%20col%20%3D%3D%20%27string%27%29%20%7B%0A%09%09%09%09%09col%20%3D%20HexToHSB%28col%29%3B%0A%09%09%09%09%7D%20else%20if%20%28col.r%20%21%3D%20undefined%20%26%26%20col.g%20%21%3D%20undefined%20%26%26%20col.b%20%21%3D%20undefined%29%20%7B%0A%09%09%09%09%09col%20%3D%20RGBToHSB%28col%29%3B%0A%09%09%09%09%7D%20else%20if%20%28col.h%20%21%3D%20undefined%20%26%26%20col.s%20%21%3D%20undefined%20%26%26%20col.b%20%21%3D%20undefined%29%20%7B%0A%09%09%09%09%09col%20%3D%20fixHSB%28col%29%3B%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09return%20this%3B%0A%09%09%09%09%7D%0A%09%09%09%09return%20this.each%28function%28%29%7B%0A%09%09%09%09%09if%20%28%24%28this%29.data%28%27colorpickerId%27%29%29%20%7B%0A%09%09%09%09%09%09var%20cal%20%3D%20%24%28%27%23%27%20+%20%24%28this%29.data%28%27colorpickerId%27%29%29%3B%0A%09%09%09%09%09%09cal.data%28%27colorpicker%27%29.color%20%3D%20col%3B%0A%09%09%09%09%09%09cal.data%28%27colorpicker%27%29.origColor%20%3D%20col%3B%0A%09%09%09%09%09%09fillRGBFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09fillHSBFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09fillHexFields%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setHue%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setSelector%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setCurrentColor%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%09setNewColor%28col%2C%20cal.get%280%29%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%0A%09%09%7D%3B%0A%09%7D%28%29%3B%0A%09%24.fn.extend%28%7B%0A%09%09ColorPicker%3A%20ColorPicker.init%2C%0A%09%09ColorPickerHide%3A%20ColorPicker.hidePicker%2C%0A%09%09ColorPickerShow%3A%20ColorPicker.showPicker%2C%0A%09%09ColorPickerSetColor%3A%20ColorPicker.setColor%0A%09%7D%29%3B%0A%7D%29%28jQuery%29%0A%0A//%5D%5D%3E%0A%3C/script%3E%0A%0A%3Cscript%20type%3D%27text/javascript%27%3E%0A//%3C%21%5BCDATA%5B%0A%0A%24%28document%29.ready%28function%28%29%20%7B%0A%09%24%28%22%23w2bForm%22%29.validationEngine%28%27attach%27%29%3B%0A%09%24%28%22span.colorbox%22%29.each%28function%28%29%7B%0A%09%09%24%28this%29.css%28%7BbackgroundColor%3A%22%23%22%20+%20%24%28this%29.siblings%28%22input.inputcolor%22%29.val%28%29%7D%29%3B%09%0A%09%7D%29%3B%0A%09%24%28%22.inputcolor%22%29.ColorPicker%28%7B%0A%09%09onShow%3A%20function%20%28colpkr%29%20%7B%0A%09%09%09%24%28colpkr%29.fadeIn%28200%29%3B%0A%09%09%09return%20false%3B%0A%09%09%7D%2C%0A%09%09onHide%3A%20function%20%28colpkr%29%20%7B%0A%09%09%09%24%28colpkr%29.fadeOut%28200%29%3B%0A%09%09%09return%20false%3B%0A%09%09%7D%2C%0A%09%09onSubmit%3A%20function%28hsb%2C%20hex%2C%20rgb%2C%20el%29%20%7B%0A%09%09%09%24%28el%29.val%28hex%29%3B%0A%09%09%09%24%28el%29.next%28%22span.colorbox%22%29.css%28%22backgroundColor%22%2C%20%22%23%22%20+%20hex%29%3B%0A%09%09%09%24%28el%29.ColorPickerHide%28%29%3B%0A%09%09%7D%2C%0A%09%09onBeforeShow%3A%20function%20%28%29%20%7B%0A%09%09%09%24%28this%29.ColorPickerSetColor%28this.value%29%3B%0A%09%09%7D%0A%09%7D%29.bind%28%27keyup%27%2C%20function%28%29%7B%0A%09%09%24%28this%29.ColorPickerSetColor%28this.value%29%3B%0A%09%09%24%28this%29.next%28%22span.colorbox%22%29.css%28%22backgroundColor%22%2C%20%22%23%22%20+%20%24%28this%29.val%28%29%29%3B%0A%09%7D%29%3B%0A%09%24%28%22span.colorbox%22%29.ColorPicker%28%7B%0A%09%20%20%20%20%20%20onBeforeShow%3A%20function%20%28%29%20%7B%0A%09%09%20%20%20%20%20%20%24%28this%29.ColorPickerSetColor%28%24%28this%29.siblings%28%22input.inputcolor%22%29.val%28%29%29%3B%0A%09%20%20%20%20%20%20%7D%2C%0A%09%20%20%20%20%20%20onShow%3A%20function%20%28colpkr%29%20%7B%0A%09%09%20%20%20%20%20%20%24%28colpkr%29.fadeIn%28200%29%3B%0A%09%09%20%20%20%20%20%20return%20false%3B%0A%09%20%20%20%20%20%20%7D%2C%0A%09%20%20%20%20%20%20onHide%3A%20function%20%28colpkr%29%20%7B%0A%09%09%20%20%20%20%20%20%24%28colpkr%29.fadeOut%28200%29%3B%0A%09%09%20%20%20%20%20%20return%20false%3B%0A%09%20%20%20%20%20%20%7D%2C%0A%09%20%20%20%20%20%20onSubmit%3A%20function%28hsb%2C%20hex%2C%20rgb%2C%20el%29%20%7B%0A%09%09%20%20%20%20%20%20%24%28el%29.css%28%7B%27backgroundColor%27%3A%20%27%23%27%20+%20hex%7D%29%3B%0A%09%09%20%20%20%20%20%20%24%28el%29.siblings%28%22input.inputcolor%22%29.val%28hex%29%3B%0A%09%09%20%20%20%20%20%20%24%28el%29.ColorPickerHide%28%29%3B%0A%09%20%20%20%20%20%20%7D%0A%09%7D%29%3B%0A%7D%29%3B%0A%0A//%5D%5D%3E%0A%3C/script%3E%0A%3Ctitle%3EiFrame%20Generator%3C/title%3E%0A%3Cstyle%20type%3D%22text/css%22%3E%0A.textarea-box%2C%20.textareaBox%7B%0A%09border%3A1px%20solid%20%20%230033CC%3B%0A%09padding%3A6px%3B%0A%09-webkit-resize%3A%20none%3B%0A%09-moz-resize%3A%20none%3B%0A%09resize%3A%20none%3B%0A%09-webkit-box-shadow%3A%201px%201px%201px%20%23dfdfdf%3B%0A%09-moz-box-shadow%3A%201px%201px%201px%20%23dfdfdf%3B%0A%09box-shadow%3A%201px%201px%201px%20%23dfdfdf%3B%0A%09%0A%09-webkit-border-radius%3A%204px%3B%0A%09-moz-border-radius%3A%204px%3B%0A%09border-radius%3A%204px%3B%0A%7D%0A.text-input%2C%20.select-box%7B%0A%09margin%3A0%202px%3B%0A%09padding%3A4px%206px%3B%0A%09border%3A%201px%20solid%20%20%230033CC%3B%0A%0A%09-webkit-border-radius%3A%204px%3B%0A%09-moz-border-radius%3A%204px%3B%0A%09border-radius%3A%204px%3B%0A%09font-family%3A%20gergia%3B%0A%09font-style%3A%20italic%3B%0A%0A%09-webkit-box-shadow%3A%201px%201px%201px%20%23809FFE%3B%0A%09-moz-box-shadow%3A%201px%201px%201px%20%23809FFE%3B%0A%09box-shadow%3A%201px%201px%201px%20%23809FFE%3B%0A%09font-size%3A%2014px%3B%0A%09color%3A%20%23666%3B%0A%09max-width%3Aauto%3B%0A%7D%0A%0A%09%09%09body%20%7B%20font-family%3A%20Verdana%2C%20Arial%3Bmargin%3A%200%3Bpadding%3A%200%3Btext-align%3A%20left%3Bfont-size%3A18px%3B%0A%7D%0A%0Alabel%20%20%20%20%20%20%20%7B%20font-family%3A%20Verdana%2C%20Arial%3Bmargin%3A%200%3Bpadding%3A%200%3Btext-align%3A%20left%3Bfont-size%3A15px%3B%20font-weight%3Abold%3B%20%7D%0A%0Afieldset%20%20%20%20%7B%20padding%3A0%201.4em%201.4em%201.4em%3B%20margin%3A%200%200%201.5em%200%3B%20border%3A%201px%20solid%20%23000%3B%20%7D%0A%09%09%09%23outer-wrapper%20%7Bfont-family%3A%20Verdana%2C%20Arial%3B%7D%0A%09%09%09%23content-wrapper%20%7B%20width%3A%2095%25%3B%20max-widtd%3A980px%3B%20%20margin%3A%200%20auto%3B%20%20padding%3A%205px%3B%20%20text-align%3A%20left%3B%20%0Abackground%3A%233BB9FF%3B%0Aborder%3A5px%20solid%20%20%232554C7%3B%0A-webkit-border-radius%3A%2020px%3B-moz-border-radius%3A%2020px%3Bborder-radius%3A%2020px%3B%0A%7D%0A%09%09%09%23content-wrapper%20h2%20%7Btext-align%3Acenter%3Bfont-size%3A20px%3Bmargin%3A%205px%200%201em%20%3Bpadding%3A%203px%2010px%3Bbackground-color%3A%20%20%23FFF%3Bfont-size%3A16px%3Bcolor%3A%23000%3Bborder%3A2px%20solid%20%23000%3B%0A-webkit-border-radius%3A%2020px%3B-moz-border-radius%3A%2020px%3Bborder-radius%3A%2020px%3B%0A%7D%0A%09%09%09.redi%7B-moz-border-radius%3A%208px%3B%20-webkit-border-radius%3A%208px%3B%20border-radius%3A%208px%3B%20%7D%0A%0A%0A%09%09%3C/style%3E%0A%3Cscript%20type%3D%27text/javascript%27%3E%0Aeval%28function%28p%2Ca%2Cc%2Ck%2Ce%2Cd%29%7Be%3Dfunction%28c%29%7Breturn%28c%3Ca%3F%27%27%3Ae%28parseInt%28c/a%29%29%29+%28%28c%3Dc%25a%29%3E35%3FString.fromCharCode%28c+29%29%3Ac.toString%2836%29%29%7D%3Bif%28%21%27%27.replace%28/%5E/%2CString%29%29%7Bwhile%28c--%29%7Bd%5Be%28c%29%5D%3Dk%5Bc%5D%7C%7Ce%28c%29%7Dk%3D%5Bfunction%28e%29%7Breturn%20d%5Be%5D%7D%5D%3Be%3Dfunction%28%29%7Breturn%27%5C%5Cw+%27%7D%3Bc%3D1%7D%3Bwhile%28c--%29%7Bif%28k%5Bc%5D%29%7Bp%3Dp.replace%28new%20RegExp%28%27%5C%5Cb%27+e%28c%29+%27%5C%5Cb%27%2C%27g%27%29%2Ck%5Bc%5D%29%7D%7Dreturn%20p%7D%28%27p%20y%28%29%7B2%20i%3D1.3%28%22z%22%29%5B0%5D.4%3B2%205%3D1.3%28%22x%22%29%5B0%5D.4%3B2%208%3D1.3%28%22A%22%29%5B0%5D.4%3B2%20k%3D1.3%28%22w%22%29%5B0%5D.4%3B2%206%3D1.3%28%22v%22%29%5B0%5D.4%3B2%20m%3D1.3%28%22B%22%29%5B0%5D.4%3B2%20j%3D1.3%28%22H%22%29%5B0%5D.4%3B2%20f%3D1.3%28%22F%22%29%5B0%5D.4%3B2%20n%3D1.3%28%22D%22%29%5B0%5D.4%3B2%20h%3D1.3%28%22G%22%29%5B0%5D.4%3B2%209%3D1.3%28%22C%22%29%5B0%5D.4%3B2%20l%3D1.3%28%22I%22%29%5B0%5D.4%3B2%20g%3D1.3%28%22t%22%29%5B0%5D%3Bg.4%3D%22%3Ce%20E%3D%5C%5C%22%22+i+%22%5C%5C%22%20u%3D%5C%5C%226%3A%22+m+%227%20%23%22+j+%22%20%22+f+%22%3B%5C%5C%22%20s%3D%5C%5C%22%22+k+%22%5C%5C%22%20S%3D%5C%5C%22%22+l+%22%5C%5C%22%20W%3D%5C%5C%22%22+6+%22%5C%5C%22%20V%3D%5C%5C%22%22+n+%227%5C%5C%22%20J%3D%5C%5C%22%22+h+%227%5C%5C%22%205%3D%5C%5C%22%22+5+%22%22+9+%22%5C%5C%22%208%3D%5C%5C%22%22+8+%22%22+9+%22%5C%5C%22%3E%3C%5C%5C/e%3E%22%3B1.3%28%22Y%22%29%5B0%5D.10%3DZ%7Dp%20T%28%29%7B2%20d%3D1.3%28%5C%27t%5C%27%29%5B0%5D.4%3Bq%3DM.L%28%5C%27%5C%27%2C%5C%27s%5C%27%2C%5C%27%5C%27%29%3B2%20a%3Dq.1%3Ba.O%28%5C%27%3Cc%3E%3Co%3E%3Cr%3ER%20Q%20P%2011%20%20U%20N%20K%3C/r%3E%3C/o%3E%3Cb%3E%5C%27+d+%5C%27%3C/b%3E%3C/c%3E%5C%27%29%3Ba.X%28%29%7D%27%2C62%2C64%2C%27%7Cdocument%7Cvar%7CgetElementsByName%7Cvalue%7Cheight%7Cborder%7Cpx%7Cwidth%7Csizetype%7Ctmp%7Cbody%7Chtml%7Cdemodata%7Ciframe%7Cbordertype%7Cwidget%7Cmarwidth%7Curl%7Cbordercolor%7Cnamee%7Cscroll%7Cbordersize%7Cmarheight%7Chead%7Cfunction%7Cnewwindow%7Ctitle%7Cname%7Cnbtcode%7Cstyle%7Cnbtborder%7Cnbtnamee%7Cnbtheight%7Cnewbloggertipscodegen%7Cnbturl%7Cnbtwidth%7Cnbtborsize%7Cnbtsizetype%7Cnbtmarheight%7Csrc%7Cnbtbortype%7Cnbtmarwidth%7Cnbtborcolor%7Cnbtscroll%7Cmarginwidth%7CGenerators%7Copen%7Cwindow%7CWidget%7Cwrite%7CIframe%7Cfor%7CDemo%7Cscrolling%7Cnbtpredemo%7Cby%7Cmarginheight%7Cframeborder%7Cclose%7Cpreview%7Cfalse%7Cdisabled%7CToolbar%27.split%28%27%7C%27%29%2C0%2C%7B%7D%29%29%0A%3C/script%3E%0A%3C/head%3E%0A%3Cbody%3E%0A%3Cdiv%20id%3D%27content-wrapper%27%3E%0A%3Ch2%3E%3Cfont%20color%3D%22%232554C7%22%3E%7E*%7E%20iFrame%20Generator%20%7E*%7E%3C/font%3E%3C/h2%3E%0A%3Cfieldset%20class%3D%27redi%27%3E%3Clegend%20class%3D%27redi%27%20align%3D%27left%27%20style%3D%27border%3A1px%20solid%20%23000000%3Bpadding%3A3px%2010px%3Bmargin-left%3A20px%3B%27%3ESettings%3C/legend%3E%3Cbr%3E%0A%3Ctable%20width%3D%22100%25%22%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27name%3D%27nbtnamee%27%3EiFrame%20Name%3C/label%3E%3A%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%3Cinput%20class%3D%27text-input%27%20type%3D%27text%27%20name%3D%27nbtnamee%27%20value%3D%27DautoCrazy.Blog%27%20size%3D%2725%27%3E%3C/td%3E%0A%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27name%3D%27nbturl%27%3EiFrame%20URL%3C/label%3E%3A%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%3Cinput%20class%3D%27text-input%27%20type%3D%27text%27%20name%3D%27nbturl%27%20value%3D%27http%3A//%27%20size%3D%2725%27%3E%3C/td%3E%0A%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2733%25%27%3E%3Clabel%20for%3D%27nbtheight%27%3EHeight%3C/label%3E%3A%3C/td%3E%0A%3Ctd%20width%3D%2733%25%27%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%3Cinput%20class%3D%27text-input%27%20type%3D%27text%27%20name%3D%27nbtheight%27%20value%3D%27400%27%20size%3D%276%27%3E%3C/td%3E%0A%3Ctd%20width%3D%2733%25%27%3E%0A%3Cselect%20class%3D%27select-box%27%20id%3D%27nbtsizetype%27%20%20name%3D%27nbtsizetype%27%3E%0A%3Coption%20value%3D%27px%27%3EPixels%3C/option%3E%0A%3Coption%20value%3D%27%25%27%3Epercent%3C/option%3E%20%0A%3C/select%3E%3C/td%3E%3C/tr%3E%0A%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2733%25%27%3E%3Clabel%20for%3D%27nbtwidth%27%3EWidth%3C/label%3E%3A%3C/td%3E%0A%3Ctd%20width%3D%2733%25%27%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%3Cinput%20class%3D%27text-input%27%20type%3D%27text%27%20name%3D%27nbtwidth%27%20value%3D%27600%27%20size%3D%276%27%3E%3C/td%3E%0A%3Ctd%20width%3D%2733%25%27%3E%0A%3Cselect%20class%3D%27select-box%27%20id%3D%27nbtsizetype%27%20%20name%3D%27nbtsizetype%27%3E%0A%3Coption%20value%3D%27px%27%3EPixels%3C/option%3E%0A%3Coption%20value%3D%27%25%27%3Epercent%3C/option%3E%20%0A%3C/select%3E%3C/td%3E%3C/tr%3E%0A%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27nbtborder%27%3EShow%20Border%3F%3C/label%3E%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%0A%3Cselect%20class%3D%27select-box%27%20id%3D%27nbtborder%27%20%20name%3D%27nbtborder%27%3E%0A%3Coption%20value%3D%271%27%3EYes%3C/option%3E%0A%3Coption%20value%3D%270%27%3ENo%3C/option%3E%20%0A%3C/select%3E%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27nbtborsize%27%3EBorder%20Size%3C/label%3E%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%0A%3Cselect%20class%3D%27select-box%27%20id%3D%27nbtborsize%27%20%20name%3D%27nbtborsize%27%3E%0A%3Coption%20value%3D%270%27%3E0px%3C/option%3E%0A%3Coption%20value%3D%271%27%3E1px%3C/option%3E%20%0A%3Coption%20value%3D%272%27%3E2px%3C/option%3E%20%0A%3Coption%20value%3D%273%27%3E3px%3C/option%3E%20%0A%3Coption%20value%3D%274%27%3E4px%3C/option%3E%20%0A%3Coption%20value%3D%275%27%3E5px%3C/option%3E%20%0A%3Coption%20value%3D%276%27%3E6px%3C/option%3E%20%0A%3Coption%20value%3D%277%27%3E7px%3C/option%3E%20%0A%3Coption%20value%3D%278%27%3E8px%3C/option%3E%20%0A%3Coption%20value%3D%279%27%3E9px%3C/option%3E%20%0A%3Coption%20value%3D%2710%27%3E10px%3C/option%3E%0A%3Coption%20value%3D%2715%27%3E15px%3C/option%3E%20%0A%3C/select%3E%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27nbtbortype%27%3EBorder%20Type%3C/label%3E%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%0A%3Cselect%20class%3D%27select-box%27%20id%3D%27nbtbortype%27%20%20name%3D%27nbtbortype%27%3E%0A%3Coption%20value%3D%27none%27%3Enone%3C/option%3E%0A%3Coption%20value%3D%27hidden%27%3Ehidden%3C/option%3E%20%0A%3Coption%20value%3D%27solid%27%3Esolid%3C/option%3E%20%0A%3Coption%20value%3D%27groove%27%3Egroove%3C/option%3E%0A%3Coption%20value%3D%27double%27%3Edouble%3C/option%3E%0A%3Coption%20value%3D%27dotted%27%3Edotted%3C/option%3E%20%0A%3Coption%20value%3D%27dashed%27%3Edashed%3C/option%3E%20%0A%3C/select%3E%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27nbtborcolor%27%3EBorder%20Color%3C/label%3E%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%23%3Cinput%20class%3D%27inputcolor%20text-input%27%20type%3D%27text%27%20name%3D%27nbtborcolor%27%20value%3D%27FFFFFF%27%20size%3D%276%27%3E%3Cspan%20class%3D%22colorbox%22%3E%3C/td%3E%0A%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27nbtscroll%27%3EShow%20Scrollbar%3F%3C/label%3E%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%0A%3Cselect%20class%3D%27select-box%27%20id%3D%27nbtscroll%27%20%20name%3D%27nbtscroll%27%3E%0A%3Coption%20value%3D%27yes%27%3EYes%3C/option%3E%0A%3Coption%20value%3D%27no%27%3ENo%3C/option%3E%20%0A%3C/select%3E%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27name%3D%27nbtmarheight%27%3EMarginheight%3C/label%3E%3A%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%3Cinput%20class%3D%27text-input%27%20type%3D%27text%27%20name%3D%27nbtmarheight%27%20value%3D%270%27%20size%3D%276%27%3E%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3Ctr%3E%0A%3Ctd%20width%3D%2760%25%27%3E%3Clabel%20for%3D%27name%3D%27nbtmarwidth%27%3EMarginwidth%3C/label%3E%3A%3C/td%3E%0A%3Ctd%20width%3D%2740%25%27%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%3Cinput%20class%3D%27text-input%27%20type%3D%27text%27%20name%3D%27nbtmarwidth%27%20value%3D%270%27%20size%3D%276%27%3E%3C/td%3E%0A%3C/tr%3E%0A%3Ctr%3E%3C/tr%3E%0A%3C/table%3E%0A%3C/fieldset%3E%0A%3Cbr%3E%0A%3Ccenter%3E%3Cinput%20value%3D%27Generate%27%20style%3D%27font-size%3A16px%3Bwidth%3A150px%3Bline-height%3A25px%3Bfont-weight%3Abold%3B%27%20type%3D%27button%27%20onclick%3D%27javascript%3Anewbloggertipscodegen%28%29%3B%27/%3E%3Cinput%20style%3D%22font-size%3A16px%3Bwidth%3A150px%3Bline-height%3A25px%3Bfont-weight%3Abold%3B%22%20type%3D%22button%22%20name%3D%22preview%22%20%20value%3D%22Preview%22%20disabled%3D%22disabled%22%20onclick%3D%22javascript%3Anbtpredemo%28%29%3B%22%20%3E%3C/center%3E%0A%3Cbr%3E%0A%3Ctextarea%20class%3D%27textareaBox%27%20name%3D%27nbtcode%27%20onfocus%3D%22this.select%28%29%22%20onmouseover%3D%22this.focus%28%29%22%20onclick%3D%22this.focus%28%29%3Bthis.select%28%29%22%20style%3D%27%20background%3A%23ffffff%3Bwidth%3A100%25%3Bheight%3A80px%3B%27%20readonly%3D%27readonly%27%20name%3D%27tbox%27%3E%3C/textarea%3E%0A%3Cbr%3E%3Cbr%3E%0A%3Ccenter%3E%0A%20%20%3Csmall%3E%20Copyright%20%26copy%3B%202012%20All%20Rights%20Reserved%20@%20%3Ca%20href%3D%27http%3A//kartriderdautocrazy01.blogspot.com/%27%3EDautoCrazy.Blog%3C/a%3E%3C/small%3E%0A%3C/center%3E%0A%3C/div%3E%0A%0A%3C/body%3E%0A%3C/html%3E%0A%3C/script%3E"));
//-->
</script>